Hosts: 提案:利用CI服务生成不同格式的类hosts文件

Created on 12 Feb 2017  ·  56Comments  ·  Source: kelthuzadx/hosts

话说似乎有不少issue都是要求提供格式相近的类似hosts功能的文件,是不是可以在CI时用脚本自动生成各种格式的文件呢?
AppVeyor的话可以配置为直接上传到他们提供的artifacts中供下载
这个项目现在使用的Travis CI没有提供云存储服务,但是可以利用GitHub Releases功能来发布文件(一直覆盖到同一个release的话就不用担心release太多比较麻烦的问题了)

enhancement

Most helpful comment

@racaljk 希望能够考虑下 挺不错的提案

PS 虽然只是用了hosts 但是最近重庆明文禁止FQ遇到点麻烦 所以最近可能都不在

All 56 comments

没人吗,好伤心啊,我可是作业不做在等回复QAQ
脚本我可以帮忙写的,appveyor的配置我也可以帮忙,不过可能只有双休日有空

昂是个不错的提案

2333 之前在做事 没看github

个人感觉 不要用覆盖 Release 的方式, 出了问题不好追溯. 能不能搞成 Github Raw 之类的...

@imknown 可以另外开一个分支,在CI时自动生成文件并push。我的一个repo的文档就是这么搞的,CI时生成文档并push到gh-pages分支

push权限可以用deploy key或者access token解决

access token的话不能限定为单个repo的权限,不是很合适。
话说添加deploy key似乎必须是owner吧? @racaljk

CI服务还是用travis吧,同时使用多个CI服务感觉维护起来比较麻烦,而且appveyor是windows服务器,只能用powershell或cmd写脚本

忽然又有一个有趣的想法。。
在一个分支上只维护一个JSON文件,大概像这样:
json { "date": "2017-2-13", "data": { "61.91.161.217": [ "www.google.com", "www.google.com.hk" ] } }
然后给这个分支配置CI,每次push就自动生成新的hosts文件(以及其它格式的类hosts文件),push到master分支去。
这样的话hosts文件的格式问题就不用担心了,单个IP对应多个域名时的维护也方便很多

滋兹 少侠你可以沉淀一下想法 然后确认一下学校的作业量(QAQ
毕竟长期没维护就会出各种偏差 然后 卒 工作量还是比较大的

@Ir1d 我需要确认的不是作业量而是我还剩多少作业本。。OI退役以后第一个去上课的学期。。
我会现在自己的fork里搞一搞,有成果了再放到这个repo来

https://github.com/sqc1999/hosts/tree/source
功能基本已实现,大家看一看有没有问题
如果要放到这个库里的话,需要@racaljk添加deploy key

可以2333 很强

@racaljk 问问他的意见吧233

@sqc1999 json怎么标记一个域名多个ip其中一些注释掉了的情况啊
以及区分内容的定位点… xxx starts这种

@Ir1d 你说的有道理,我明天来处理一下。。

@Ir1d说的问题处理一下,代码再清理一下,随便加一点别的格式的生成器,估计最迟大后天就可以正式完工了

@Ir1d 已经支持你说的那些功能
考虑到可读性,我现在用yaml来代替刚开始提出的json

刚刚看到xxx start还有嵌套的诶。。
这个好麻烦,就不实现了吧,把那些嵌套的拆出来问题看起来也不大。。

jia you @sqc1999 2333

终于搞定了。。目前所有hosts条目都转换过去了。。
除了hosts文件以外,还添加了dnsmasq配置文件的生成功能。其它格式的生成器以后再说了。。

不错23333

阿列,忘记加localhost了。。
已经加了

功能到现在为止基本完善了,我总结一下这只东西的用处

  • 支持不同格式但有类似hosts功能的文件,如dnsmasq的配置文件,今后添加其它配置文件的支持也很方便
  • 单个IP对应多个域名时的维护更加方便
  • 添加后只需要维护一个hosts.yml文件,脚本会自动维护其它文件(包括hosts文件)
  • 实际使用的配置文件(如hosts文件,dnsmasq配置文件)完全由脚本生成,无需担心PR时的格式问题

原理很简单,在CI时用Node.js脚本生成文件,并直接git push。
需要注意的是一旦开始使用这只东西,就只能修改hosts.yml,对脚本生成的文件的修改会被脚本覆盖

@racaljk 哇,您终于冒泡了。。。
考虑下这个提案?
PS:虽然说好sqc1999这个号不用了,然而新账号密码是随机生产存在自己电脑上的,那台电脑却出了点问题,就用这个号凑合下吧。。

抱歉,我咸鱼了一段时间

我觉得你说的需求只有很少的users会考虑,大部分还是简单粗暴直接覆盖全部hosts内容,针对你说的情况,我的想法是现在保持不变,然后额外提供工具可以让用户自主选择分组,然后生成对应hosts,比如用户勾选GOOGLE FACEBOOK TWITTER就只生成相关记录的hosts,你怎么看

@racaljk 您似乎误解我的意思了?
不是有不少issue都是请求dnsmasq/bind之类的配置文件吗,这个东西主要是可以在每次更新的时候自动生成这些文件供大家使用

@racaljk 你说的是netsh那种?

@Ir1d 刚刚看了一下netsh的确和我想的差不多
@DDoSolitary 我没怎么看到这种需求的...

@racaljk QAQ

1053 #733 #248 #203 #135 #958

@racaljk 希望能够考虑下 挺不错的提案

PS 虽然只是用了hosts 但是最近重庆明文禁止FQ遇到点麻烦 所以最近可能都不在

@lrinQVQ 那个只是照抄96年老条例吧 不过按照原文……

感觉大家反响挺强烈的,要不试试你的提案?那你得做好长期维护的准备>3<

@racaljk 并不需要专门维护啊。。travis ci会自动维护的。。

如果规则改变,是否能持续兼容呢?@DDoSolitary

@hhhaiai 这个当然会负责的啊

@DDoSolitary 这部分不熟悉 ,如果方便可以加个联系方式 一起交流下.

@hhhaiai 哪部分啊?联系方式的话我邮箱是公开的啊,不过我一般只有双休日在。。

@racaljk @DDoSolitary 2333所以你们到底弄不弄啦

我是想弄的,然而 @racaljk 没回音啊 QAQ

@DDoSolitary 我之前不是同意了么...但是看你没什么动静..

@racaljk 原来那个算同意啊,对不起我语死早。。

@DDoSolitary ....看你没反应还以为是热度过了

需要我提供什么服务可以告诉我,我这个周末比较空

@racaljk
需要在项目里添加一枚deploy key用于自动push
另外这套东西我来维护的话还是加一下collaborator比较方便吧,如果你觉得没问题的话麻烦加一下

已经添加,善用账号~

你看看你能不能添加,不能我再添加

@racaljk 我这里好像不行呢

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMxEdcAS6r7Lu5KRYlF9yyNrBFPWN/WfQTtQ77DaPhB/ racaljk/hosts Deploy Key

麻烦加下

owner也在就借帖顺便报告了, @lrinQVQ 跟我在gitbbok一起写的教程我开了一半坑,然而填上得好一会了

@DDoSolitary 已经添加~

@EMLVIRUS 是哒2333

@EMLVIRUS 2333能不能提供一个私人联系方式丫咩

https://t.me/EMLVIRUS TG可以咩

@EMLVIRUS 好呀~

完成了

Was this page helpful?
0 / 5 - 0 ratings

Related issues

outsinre picture outsinre  ·  8Comments

lrinQVQ picture lrinQVQ  ·  5Comments

lishoujun picture lishoujun  ·  3Comments

MingqiHuang picture MingqiHuang  ·  5Comments

redapple0204 picture redapple0204  ·  8Comments