世界上最短,最小,最智能的纯 Shell, Let's encrypt

2015-12-26 21:51:31 +08:00
 neilp
欢迎大家 star, fork

https://github.com/Neilpang/le


不依赖 官方客户端,
不依赖 python,
直接通过 shell 脚本 实现 ACME 协议.

纯 shell, 全自动化 搞定 Let's encrypt
6528 次点击
所在节点    分享创造
27 条回复
ahu
2015-12-26 21:59:41 +08:00
赞一个,收藏了
imWBB
2015-12-26 22:08:37 +08:00
收藏。
xufang
2015-12-26 22:30:24 +08:00
赞一个。不过楼主的 bash 的风格需要进一步“美化”。
neilp
2015-12-26 22:33:47 +08:00
@xufang 恩, 请多指点.
KentY
2015-12-26 22:52:12 +08:00
不知道是不是有点挑剔了, 打开代码看了下, 很多例如:

echo|sed|cut|sed|cut....
grep|sed|sed|cut|cut...
grep|sed|cut|cut....
....

这些真有点眼疼.. 建议看一下 awk, 会对你这个脚本有挺大帮助.
crowds
2015-12-26 22:59:23 +08:00
shell 代码超过了 100 行

这说明了什么?
neilp
2015-12-26 23:02:39 +08:00
@KentY 谢指点. awk 的确不会, 以后再改善吧. 比较喜欢简单的事情简单做. make it work 比较重要. 何必在乎有什么方式呢.
KentY
2015-12-26 23:03:36 +08:00
@crowds 这不说明什么呀. 大于 100 行的 shell script 有的是吧?
KentY
2015-12-26 23:07:56 +08:00
@neilp 我不是强调 awk 的方式.
你那一串 pipe, 一下就 5,6 个进程, 而且你的代码里这样情况很多. 一般 grep 和 sed/awk 一起用都是 quick and dirty 的方式. 当然, 你可以说, 我把全部代码中启动 100 个进程,简化到 20 个, 对我这个程序来说性能没什么显著提升. 可是作为咱们搞技术, 如果知道一种方法是最优的, 却选择不优的(我这里不说是最差的), 是态度的懒惰, 不是技术的问题. 特别是, 这个选择并不提高多少开发成本.

当然, 你要学习 awk, 这是成本. 但我觉得 awk 作为 shellscript 编写是必须会的之一. 不说掌握多高深, 但必须会.

my 2 cents
crowds
2015-12-26 23:08:58 +08:00
可以参看 Google code style ( https://google-styleguide.googlecode.com/svn/trunk/shell.xml )里一段:
If you find you need to use arrays for anything more than assignment of ${PIPESTATUS}, you should use Python.
- If you are writing a script that is more than 100 lines long, you should probably be writing it in Python instead. Bear in mind that scripts grow. Rewrite your script in another language early to avoid a time-consuming rewrite at a later date.
- 如果有复杂的的对象,请使用 Python ;- 如果写了超过 100 行的 shell 脚本,考虑使用 Python 重写。
zho6
2015-12-26 23:12:51 +08:00
收藏了
562 行的 shell 费心的工作
感谢无私的分享 :-)
KentY
2015-12-26 23:13:34 +08:00
@crowds 恕我直言, 我觉得这太教条了. 你可以搜索一下你电脑里的 shellscript, 超过 100 行的有多少, 他们又有多少会转到 python.
而且这毕竟是 google 他们自己的 convention, 虽然 google 对软件开发行业推动很大, 但不能这么教条我觉得.
neilp
2015-12-26 23:15:02 +08:00
@crowds 感谢.
neilp
2015-12-26 23:15:28 +08:00
@KentY 感谢
aheadlead
2015-12-26 23:17:44 +08:00
@KentY 我觉得 google 说的有一定道理

在有条件的情况下 还是尽量转别的好读的 script 更好

shell 太长简直难维护
jings
2015-12-26 23:17:59 +08:00
你依赖 linux 卒
xufang
2015-12-26 23:19:00 +08:00
@neilp 亲,你这个东东固然有独创性,但是在发上 github 并且甩到 v2 就是做好被人“指指点点”的准备。。。 @KentY 这位兄台已经说的很客气了,要是我的话估计就很说的很冒犯了(可以翻我过往发言)。

最后说一句,楼主既然这是个不错的东东,何不精益求精?
guonning
2015-12-26 23:19:53 +08:00
能用,好用,而且还分享,才是最重要的
KentY
2015-12-26 23:20:50 +08:00
@aheadlead
我完全同意 shellscript 长了调试, 修改, 维护非常头疼. shellscript 的强项本来也不是实现特别复杂的功能, 甚至编写应用程序.我没否认 google 的说法, 我只是说纠结于 100 行有点没必要.
crowds
2015-12-26 23:28:18 +08:00
@KentY
我觉得 100 行作为分水岭正好
看 100 行 shell 脚本的价值<看 100 行 python 脚本的价值(我认为)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/246360

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX