×
广告

bpkg工具

96
dodo_lihao
2018.06.28 21:40 字数 563

说明

最近接手一个项目
本来是jenkinsfile相关, 但是由于这里很多实现都是用的shell
并且还是用的 bpkg 做的管理, 再在bpkg基础上, 写了几个小命令
多年不写的shell,居然也有管理工具
被迫需要看具体一些,顺便简单记录一下


bpkg官网

github搜索 bpkg, 用shell的filter找到项目地址

bpkg项目地址


bpkg简单说明

由于时间关系, 不翻译了
简单叙述一下


安装

  • curl 方式安装
  • clib 方式安装
  • source code 安装

使用

  • 直接全局安装
    • bpkg install xxxx -g
  • 局部安装
    • bpkg install xxxx
    • 注意:
      • 可以在 ./deps/下面找到库
      • 可以加入path (export PATH=$PATH:/path_to_bkpg/deps/bin)
  • 特别版本安装
  • 其他方式安装(别的地方文档...)
    • github方式
    • gitlab方式
    • coding.net方式
  • Makefile方式(没有package.json时)
    • 当 bpkg install xxx -g 的时候,会触发Makefile安装
    • 例如: bpkg install stephenmathieson/git-standup -g

package细节

  • package.json
    • 例子:
      {
        "name": "term",
        "version": "0.0.1",
        "description": "Terminal utility functions",
        "scripts": [ "term.sh" ],
        "install": "make install"
      }
      
  • package.json 具体field说明
    • name
      • 告诉 bpkg,放在 deps/ 下面那个文件夹
    • version
      • 版本
    • description
      • 这个package是做什么的(说人话)
    • global
      • 只有用 -g ,-global 的时候安装
    • install
      • 如果 global是true的时候, 用于安装脚本调用的shell
    • script
      • 所有会被安装的脚本
      • 也就是对于项目中要跑的脚本(方法,或者变量,或者..)
    • files
      • 所有的文件,会被放到项目中
    • dependencies[选填]
      • key是package名字,value是版本 (master是最新版本)
      • 作用和 bpkg install 类似
      • 例子:
        "dependencies": {
          "term": "0.0.1"
        }
        

打包方式

  • 打包导出
    • export -f xxx
  • 例子
    • 建议的e代码
      if [[ ${BASH_SOURCE[0]} != $0 ]]; then
        export -f my_script
      else
        my_script "${@}"
        exit $?
      fi
      
    • 调用方式(直接用 script, 或者 source后再用)
      # Running as a script
      $ ./my_script.sh some args --blah
      # Sourcing the script
      $ source my_script.sh
      $ my_script some more args --blah
      

结束语

就这样了, 多用用,应该就熟悉了
这个只是工具
主要要解决的,还是把这块连起来,把docker发布那块脚本跑熟悉
加油

shell about
Web note ad 1