人生三境
第一境界
—独上高楼,望尽天涯路——出自晏殊的《蝶恋花》(一作《鹊踏枝》)
第二境界
—衣带渐宽终不悔,为伊消得人憔悴——出自柳永的《蝶恋花》
第三境界
—蓦然回首,那人却在灯火阑珊处——出自辛弃疾《青玉案》
Coder三境又在哪里?
我为什么要做这个自动化系统?
刚来公司时,正好赶上自动化业务的开始,也提出了自己的一些意见,也有自己的一些小想法,我实在是讨厌每天敲同样的、繁琐的、易出错的pod、git命令,它们只是一个工具,不该被其所束缚,当发现其不适合的地方,就要想着改造、包装它,所以第一个小自动化系统shell版本(https://github.com/LONGDDSF/Automate)诞生了。经过完善后,我觉得自己用着不错后,我要推广,想着解放每个人的双手去做主要的事情,快速敲下一行自创的命令,看着显示器里自动更新日志,翘着二郎腿,等它自动执行完毕,哈哈!
可是遇到了问题,一是不被理解,二是体验不好,结果推广不开。
如何拥有更好的体验?我把关注点放到了cocoapods/git,决定开始模仿它们,做出体验类似的工具。
语言基础是Ruby,可是完全没接触过啊,放弃吗?完全不像我的风格,人在塔在,塔亡人亡!开始学习Ruby,如何快速学习一门语言,我想到了王垠这个好吹牛逼的家伙,你还不得不服。经过基础知识学习、实践练习,我也算会用ruby了。如何做到像git那样的命令,刚开始查到了一个第三方库,那个相关知识是真少;又换成系统的方案,可查资料也少;最后我查看cocoapods的源码,找到它自己写的一个Command库,也不会用,照葫芦画瓢呗,然后逐渐理解了ruby这门语言。
期间,我对朋友讲,用了这么久的Objective-C,我感觉就像在用大白话文,当我使用Ruby时,我感觉像在读文言文、古诗词 - 优美!!
Today,我终于将第一个shell版本完全转化、优化为Ruby版本,并开始内测。我给他起了一个名字“smart tool”,外号sl,虽然他的功能还比较少,感觉就像一个宝宝,终究会成长起来,因为我给了他一个好的基因和基础,也期待志同道合的人,我们一起来做这件事。
如何使用?
项目源码:https://gitee.com/CWDong/stool
已发布到了RubyGem:https://rubygems.org/gems/stool,
Mac上,需要使用gem安装:
gem install stool
配置 - 像podSpec一样,文件配置:
#stool 配置
Config.new do |c|
#添加一个本地lib pool,池中是你clone下来的各个pod
#name - 随意取
#path - lib pool的本地路径
c.addPool do |p|
p.name = '本地lib池 - 1'
p.path = ''
end
#再添加一个本地lib pool
# c.addPool do |p|
# p.name = '本地lib池 - 2'
# p.path = ''
# end
#添加一个主工程,iOS-workspace工程
#name - 随意取
#tag - 命令操作需要,工程的唯一标识
#path - 路径目下要有workspace/podfile文件
#addLocalLib - 项目使用的本地lib(再无需手动修改Podfile),默认都是源码
#addOtherLibUseCode - 非本地lib,配置使用源码
#allLibsUseCode - 是否所有lib都使用源码,默认false
c.addTask do |t|
t.name = 'workspace主工程-1'
t.tag = '1'
t.path = ''
t.addLocalLib(['pod1',
'pod2',
'pod3'])
t.addOtherLibUseCode(['pod4'])
#t.allLibsUseCode
end
end
终端使用:sl