接口变动
近期已升级至 v3 版本,文章内容已更新。
细心的朋友可能会发现,我提供的一些脚本都可以在不依赖任何包管理工具的情况下通过一行命令安装,并且它们的安装命令极为相似:
curl -s https://sh.xaox.cc/install | sh -s hexo |
虽然它们安装方式极为相似,但是安装逻辑却并非完全相同,例如前三者是安装到 /usr/local/bin/
目录下,在任意位置打开终端都可以使用,而 podspec.sh
则是下载到当前目录下。
如果打开 https://sh.xaox.cc/install
文件,你会发现它并没有做任何实质性的操作,只是负责任务派发,根据不同的参数把「安装」指令指派给不同的项目,不同的项目对「安装」的具体实现可以相同也可以不同。
对于相同的部分,以 vimcn
为例,它的 index.sh
实现如下:
|
从中可以看到它导入了一个「库」,确切的说是一个存放可复用代码的仓库地址,具体的「下载」与「安装」脚本像独立组件一样可供外部调用。与此例不同的 podspec.sh
脚本就只有下载操作:
curl -s ${lib}/download.sh | sh -s ${REPO} ${VERSION} ${TARGET} ./ && |
易于扩展
这么一套流程使得脚本安装变得非常有扩展性,如果需要发布一个新的脚本,只需要新建仓库,在其中写一个 index.sh
脚本,通过调用 lib
仓库里封装好的脚本,传入仓库名、版本、要下载的文件,就可以轻松实现下载安装流程。
易于使用
更重要的是,可以通过一行命令来安装:
curl -s https://sh.xaox.cc/install | sh -s 我的脚本 |
这套体系类似于包管理工具一样,但目前只对创建在 @cloud-shell-lib 中的仓库有效。
总结
就是一个比包管理工具更轻量级更小的「个人脚本管理」体系,不需要本地依赖,适合经常换系统、换设备执行一些轻量级任务的场景。
Todo
暂时没有 todo 了,不打算折腾了,感兴趣的朋友可以自己研究一下,不懂的话可以留言询问。搭建方法就是: