utils/deb_build_remote.sh
来源:互联网 发布:网络修复大师 编辑:程序博客网 时间:2024/05/22 15:13
#!/bin/bash#得到当前目录CUR_DIR=$(cd `dirname $0`; pwd)#通过.执行脚本. ${CUR_DIR}/function_cmd_scp.sh#参数赋值packages=IP="192.168.1.180"loginuser="estuaryrepo"#这里用``将命令执行的结果保存在loginpassword 中,也可以用$loginpassword=`cat ~/PASSWORD_WORKER`giturl="https://github.com/open-estuary/distro-repo.git"reponame="distro-repo"#定义函数usage(){ echo "Usage: deb_build_remote.sh -k "packages" [-m remoteip] [-u login_user] [-p login_password]"}# 这个指教本质的时候,会有k,m,u,p,h 这几个参数,分别parse这几个形参代表的值while getopts "k:m:p:u:h" OPTIONSdo case $OPTIONS in k) packages="$OPTARG";; m) IP="$OPTARG";; u) loginuser="$OPTARG";; p) loginpassword="$OPTARG";; h) usage;exit 1;; \?) echo "ERROR - Invalid Parameter"; echo "ERROR - Invalid parameter" >&2; usage; exit 1;; *) echo "ERROR - Invalid Parameter"; echo "ERROR - Invalid parameter" >&2; usage; exit 1;; esacdone#如果package 为null,则调用usage 函数,并通过exit 1 退出,1表示执行失败if [ "x$packages" = "x" ];then echo "Packages must not be void!" usage exit 1fi#在远程主机上执行git pull 或者git clone 命令sshcmd "if \[ \`ls /home/${loginuser} | grep "$reponame"\` \];then cd /home/${loginuser}/$reponame;git pull;cd -;else cd /home/${loginuser};git clone ${giturl};cd -;fi"#package等于all的话,远程执行脚本if [ "${packages}" = "all" ];then sshcmd "sh /home/${loginuser}/${reponame}/deb/deb_build_all.sh" exitfi#for循环遍历执行个个package下的deb_build.sh 这个脚本for package in $packagesdo sshcmd "sh /home/${loginuser}/${reponame}/deb/$package/deb_build.sh"done#通过echo 输出日志.echo "Build have done, please check!"utils/deb_resign.sh#!/bin/bash#返回到用户的根目录cd ~export DEBEMAIL=sjtuhjh@hotmail.comexport DEBFULLNAME=Open-Estuary#安装包apt-get updateapt-get install -y dpkg-sigapt-get install -y expect#在文件中追加字符串echo "DEBSIGN_KEYID=3108CDA4" >> /etc/devscripts.conf#通过$将执行的结果保存在passphrasepassphrase=$(cat /root/KEY_PASSPHRASE)#导入加密的keygpg --import /root/ESTUARY-GPG-SECURE-KEY#获得第一个形参SRC_DIR=${1}#对目标目录下的每一个deb文件执行dpkg-sig的命令,这个命令执行的时候需要用于输入key,这里采用在for循环中嵌入expectfor deb_file in ${SRC_DIR}/*.debdoexpect <<-END set timeout -1 spawn dpkg-sig --sign builder ${deb_file} expect { "Enter passphrase:" {send "${passphrase}\r"} timeout {send_user "Enter pass phrase timeout\n"} } expect eofEND done
阅读全文
0 0
- utils/deb_build_remote.sh
- utils/config.sh
- utils/createrepo.sh
- utils/deb_build.sh
- utils/deb_build_incontainer.sh
- utils/deb_resign.sh
- utils/deb_verify.sh
- utils/decode_rpm.sh
- utils/yum_onlydownload.sh
- utils/function_cmd_scp.sh
- utils/pkg_list.sh
- 关闭指定pid程序, utils.sh
- GNU sh-utils (A set of shell utilities)
- kaldi学习笔记 -- 构造语言模型相关脚本 -- ami_train_lms.sh,utils/format_lm.sh
- UTILS
- Utils
- utils
- utils
- utils/deb_build_incontainer.sh
- 无需cad,从dwg文件中读取缩略图
- reactNative随笔
- iOS iqkeyboardmanager使得navigation偏移的问题
- 开除了没情商的“技术大神”后,整个团队都好起来了
- utils/deb_build_remote.sh
- gradle学习(一)
- Android显示系统框架原理介绍 原创 2016年03月23日 11:17:55 标签:surface /surfaceflinger /surfacecomposer /android /disp
- Inter-eNB S1 切换
- spring——(4)自动装配
- Maven
- U3D:Shader固定管线关闭雾
- zabbix性能调优
- 大家帮我看看我在弄spring得aop编程一直出现错误找不到