utils/rpm_build_remote.sh

#!/bin/bash
#得到当前脚本执行的路径
CUR_DIR=$(cd `dirname $0`; pwd)
#通过. 执行脚本,这样就可以使用脚本中的函数
. ${CUR_DIR}/function_cmd_scp.sh
#下面这几行是赋值
packages=
IP="192.168.1.180"
loginuser="estuaryrepo"
#通过飘键得到cat执行的结果
loginpassword=`cat ~/PASSWORD_WORKER`
giturl="https://github.com/open-estuary/distro-repo.git"
reponame="distro-repo"

#定义一个函数
usage()
{
        echo "Usage: rpm_build_remote.sh -k "packages" [-m remoteip] [-u login_user] [-p login_password]"
}
#parse这个基本可能的输出参数,这些参数可以分别用-m/-k/-u/-p 指定。如果输入-h的话地则调用usage这个函数,
#其他参数会输出Invalid Parameter
while getopts "k:m:p:u:h" OPTIONS
do
        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;;
        esac 
done            
#判断字符串是否相等,这里用等号判断,字符串前面加x避免空字符。这样话的作用是判断package是否是空字符
if [ "x$packages" = "x" ];then
	echo "Packages must not be void!"
	usage
	exit 1
fi
#调用sshcmd在远端机器上执行双引号中的命令
sshcmd "if \[ \`ls /home/${loginuser} | grep "$reponame"\` \];then  cd /home/${loginuser}/$reponame;git pull;cd -;else cd /home/${loginuser};git clone ${giturl};cd -;fi"
#判断字符串是否相等,如果相等则执行sshcmd 命令。执行完成后调用exit 退出。应该给exit加上返回值0
if [ "${packages}" = "all" ];then
	sshcmd "sh /home/${loginuser}/${reponame}/rpm/rpm_build_all.sh"
	exit
fi
#遍历package中的每一个package,对每个package执行rpm_build.sh 这个脚本
for package in $packages
do
	sshcmd "sh /home/${loginuser}/${reponame}/rpm/$package/rpm_build.sh"
done
#通过echo 输出字符串表示脚本执行完成.
echo "Build have done, please check!"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值