详细介绍可参考我的博客 -- 开发NB-App中使用的脚本们。
这些是我在开发NB-App中使用到的一些脚本,其中包括:
- diff_project.py - 用于对比单个project中的多个target的脚本。
- gen_zh.py - 从
Localizable.strings (English)
上自动生成Localizable.strings (Chinese)
的脚本。 - cal_code.py - 计算工程总代码量和有效代码量的脚本。
- cal_svn_commit.py - 统计SVN commit行数的脚本,自动diff并统计commit增删代码量。
- jsonserver.py - 用于代理并返回静态json的脚本,基于
web.py
,主要用于自我调试。
参照demo,将脚本添加到工程中:
Target -> Build Phases -> New Run Script Phase
在输入框中填写为:
python 路径+diff_project.py
例如:
python ./Scripts/diff_project.py
在每次编译后,输出结果会出现在这里:
点击对应的Build,可以看到输出结果:
使用过程和diff_project.py
基本一致,依然在Build中查看输出结果:
只是这个脚本需要使用PyObjc
框架,需要提前安装一下,建议使用pip
安装:
pip install pyobjc
如果没有安装pip
的话,可以去官网安装一下。
由于我们无法要求每个Mac都安装有pyobjc
库,所以我们必须通过其他办法来让别人也可以运行,比如:
- virtualenv(python 虚拟机)
- PyInstaller(打包成可执行文件)
- 其他
具体可参考开头博客的文章。
demo中将此脚本直接添加于Build Phases
中,是为了方便演示,而实际上我们一般很少需要统计代码量,所以只需要在适当的时候在终端中运行即可。
//使用方式
python cal_code.py (+ 目录)
python cal_code.py
python cal_code.py ../
在终端中输出结果一般如下:
由于SVN的特殊性,必须要在线连接到SVN服务器,否则无法统计。
//使用方式
python cal_svn_commit.py (+ 目录) (+ 统计版本个数)
python cal_svn_commit.py
python cal_svn_commit.py ./ 5
原理是读取目录的svn log
,从log上获取版本号,之后使用svn diff
命令diff版本差异,再从输出的log上统计增删的代码量,之后汇总输出。结果类似于下图:
jsonserver.py
依托于web.py框架,在使用此脚本之前,必须安装web.py框架:
pip install web.py
web.py
使用起来非常方便,入门又非常简单,非常适合我们这种使用场景。
现在业界比较流行的微web框架是Flask
,Flask
的用户量很大,开源的三方更多,如果你要做小型网站的话,Flask
还是非常适合的。
运行方式:
python jsonserver.py (+ 端口号,默认为8080)
python jsonserver.py
python jsonserver.py 1234
jsonserver
中的 static
文件夹保存的是静态资源,只需要将返回的静态json放置于static
文件夹中,在代码中直接返回即可。
如果对于web.py
有疑问的,可以直接去官网查看官方文档,官方提供中文版支持。一般来说,看完基础文档也就只要半个小时、一个小时,速度很快。这也体现了这个框架的简洁、高效、轻量级。
成功之后,将手机连到电脑ip上即可。
MIT.