helloshell v0.0.3
Hello Shell 个人脚本管理工具
一切的开始
作为一名程序猿,每个人都会有一些私家珍藏的脚本,来帮助完成自动化流程。但这些脚本并没有得到很好的管理,导致很多人经常重写一些常用的脚本,浪费了很多时间,最可怕的是,越是不管理的人,可能越是对脚本语言不熟悉,所以每次重写,也是重新学习的过程😱,例如我就是这样, 🤔 你又有没有同感。所以,为了让工作效率看起来不是太傻,那可能就需要一个脚本管理工具,来方便管理。
举个例子,每次遇到,就觉得傻到爆
ll
命令,常用但不是系统默认,每次重装系统或换了电脑,都要重新配置,又不是经常操作,忘的快,总不记得 alias 怎么写,就每次的问 google。 😱。
满足简单的需求
- 可以很方便地创建脚本文件,一步链接到 bin 目录
- 提供常用的模板,工具,方便脚本开发
- 可以方便的备份脚本到 github,与恢复脚本。
这里想求大家来帮助,尽可能满足通用的要求
如果你觉得,你的脚本管理的也是一塌糊涂,并且觉得上面的需求你也有,并且更多,那么欢迎你加入到项目开发里。对没有说错,是邀请你来开发。我要承认,我的对写脚本并不是很好,只可算作初学者。所以,如果有你的加入,才能开发出一款真正有效的应用,如果你也是位初学者,也可把它当做是一次学习。
帮助文档 (未完待续)
安装
- 使用 npm
$ npm install helloshell -g
- 手动
$ git clone https://github.com/wl879/HelloShell.git
$ chmod 777 ./HelloShell/main.py
$ ln -s "$(pwd)/HelloShell/main.py" /usr/local/bin/helloshell
命令参数说明
1. 新建脚本到仓库中
$ helloshell new name [-l [name]]
新建一个脚本,目前支持 bash/python 模板,参数 -l, --link
设置将脚本链接到 bin
目录下
2. 对仓库进行管理
$ helloshell repo [-d file] [-r github] [-b] [-u]
-d, --dir
设置本地仓库路径-r, --remote
设置 github 仓库地址-b, --back
从 github 仓库恢复到本地-u, --update
更新 github 仓库
3. 将脚本安装到系统环境中
$ helloshell link
4. 读写配置文件
$ helloshell conf <file> [option [= value]] [--prefix name]
option
输出选项变量option=value
设置并输出变量p, --prefix
设置输出变量名的前缀
e.g.
# 写入配置
$ helloshell conf test.ini name=wang sex=man
name="wang";
sex="man";
# 读取配置
$ helloshell conf test.ini
name="wang";
sex="man";
$ helloshell conf test.ini name
name="wang";
5. 解析参数
$ helloshell args <file> [arguments]
解析参数为 shell 语法格式,以argv_
为前缀
e.g.
将下例代码保存为 test.sh
文件, 读取 <file>
中以 "# HELP DOCUMENT" 为开始的注释段落
#!/bin/sh
# HELP DOCUMENT
#
# 参数:
# -t, --text string 示例
# -h, --help 查看帮助
#
eval "$(helloshell args $0 $*)"
if [ $? != 0 ]; then
echo "Argument Error:"
echo $argv_errors
exit 1
fi
if [ $argv_help ]; then
echo "${help_document}"
exit 1
fi
if [ $argv_text ]; then
echo $argv_text
fi
运行结果如下:
$ test.sh --help
参数:
-t, --text string 示例
-h, --help 查看帮助
$ test.sh -t "haha"
haha
HELP DOCUMENT 格式说明
# HELP DOCUMENT
#
# 此处可以写脚本介绍
#
# 参数格式:
# -t, --text content 此表示 text 接收参数
# -t, --text <content> 此表示 text 接收参数, 当无参数时报错
# -t, --text [content] 此表示 text 接收参数,当无参数时为 true
# -t, --text = content 此表示 text 接收参数,默认值为 abc
# -t, --text = [] 此表示 text 接收多个参数,保存为数组类型
# -t, --text = [desc] 此表示 text 接收多个参数,保存为数组类型,desc 为补充说明
# -h, --help 此表示 help 为 bool 类型,不接收参数
6. 彩色输出
$ helloshell echo "#r[abcd]"
$ echo "#b[abcd]" | helloshell
#r[]
= 红色 / #g[]
= 绿色 / #b[]
= 蓝色 / #c[]
= 蓝绿色 / #d[]
= 灰色 / #w[]
= 白色
功能设计 (未完待续)
- 管理功能
- 程序配置
- shell 仓库配置 - x 设置仓库目录 - x 设置 github
- 新建脚本文件 - x bash 模板支持 - x python 模板支持 - nodejs 模板支持 - ruby 模板支持
- 支持 alias, - 目前只读写 ~/.bash_profile - x 添加 - x 还原
- 备份仓库到 github - x master 分支,用户提交 - history 分支,自动提交 - 支持单独脚本提交与恢复 - 对各种冲突处理
- 链接脚本 - 创建自己的环境变量 - x 链接到 bin 目录(当前版本是链接到 helloshell 命令同目录下) - 生成日志文件,用与回复配置 - 支持解析 nodejs package.json
- 提示更新
- 支持多平台 (目前只支持 mac os)