oem=$1 #厂商 password="hg123123" #电脑密码 cpu=$(arch) #cpu架构 sys=$(cat /etc/issue) sys=${sys%% *} #操作系统 dpkgpath="" #打包路径 dpkgarch="" #打包时的版本 libname="" #动态库名字 libpath="" #打包时库路径 time2=$(date "+%g%j") #版本控制 ismount=-1 #是否挂载服务器成功 0成功 非0失败 FIND_FILE="/home/samba/dpkg" #服务器存放打包路径 不可修改 dpkgtype="app" ver3=10 mainverstr=$(cat ../sdk/include/huagao/brand.h |grep VERSION_MAIN) mainverstr=${mainverstr: -2} mainverstr=$(echo $mainverstr) minver=$(cat ../sdk/include/huagao/brand.h |grep VERSION_SUB) minver=${minver: -2} minver=$(echo $minver) if [ $2 ]; then password=$2 fi echo "$password" if [ "$oem" != "hg" ] && [ "$oem" != "lsc" ] && [ "$oem" != "hw" ] && [ "$oem" != "hgweb" ] && [ "$oem" != "lscweb" ] && [ "$oem" != "hwweb" ] && [ "$oem" != "hgso" ] && [ "$oem" != "lscso" ] && [ "$oem" != "hwso" ]; then echo "参数错误!!!" echo "参数:华高:hg || hgweb 立思层:lsc || lscweb 汉王:hw || hwweb" exit 1 fi function getismount() { mountpoint -q /home/samba ismount=$? if [ $ismount != 0 ];then echo "$(date):mount is fail!!! and reboot mount" echo $password|sudo -S mount -t cifs //192.168.100.140/huagao /home/samba/ -o username=huagao,password=hg123123 else echo "$(date):mount is succeed" fi } if [ "$cpu" == "x86_64" ]; then dpkgarch="amd64" libpath="x86_64-linux-gnu" elif [ "$cpu" == "aarch64" ]; then dpkgarch="arm64" libpath="aarch64-linux-gnu" elif [ "$cpu" == "mips64" ]; then dpkgarch="mips64el" libpath="mips64el-linux-gnu" else echo "没有已知架构" exit 1 fi if [ "$sys" == "UnionTech" ];then syspath="uos" if [ "$oem" == "hw" ]; then dpkgpath="com.hanvonchina.hanvonscan" elif [ "$oem" == "lsc" ];then dpkgpath="com.lanxumchina.lanxumscan" elif [ "$oem" == "hg" ];then dpkgpath="com.huagaochina.huagoscan" elif [ "$oem" == "hgweb" ];then dpkgpath="huagaowebscan" elif [ "$oem" == "lscweb" ];then dpkgpath="lanxumwebscan" elif [ "$oem" == "hwweb" ];then dpkgpath="hanvonwebscan" elif [ "$oem" == "hgso" ];then dpkgpath="huagaoscansdk" elif [ "$oem" == "lscso" ];then dpkgpath="lanxumscansdk" elif [ "$oem" == "hwso" ];then dpkgpath="hanvonscansdk" fi else syspath="kylin" if [ "$oem" == "hw" ] ;then dpkgpath="scanner-driver-hanvon" elif [ "$oem" == "lsc" ];then dpkgpath="scanner-driver-lanxum" elif [ "$oem" == "hg" ];then dpkgpath="scanner-driver-huagao" elif [ "$oem" == "hgweb" ];then dpkgpath="huagaowebscan" elif [ "$oem" == "lscweb" ];then dpkgpath="lanxumwebscan" elif [ "$oem" == "hwweb" ];then dpkgpath="hanvonwebscan" elif [ "$oem" == "hgso" ];then dpkgpath="huagaoscansdk" elif [ "$oem" == "lscso" ];then dpkgpath="lanxumscansdk" elif [ "$oem" == "hwso" ];then dpkgpath="hanvonscansdk" fi fi if [ "$oem" == "lsc" ] || [ "$oem" == "lscweb" ] || [ "$oem" == "lscso" ];then ver3=14 elif [ "$oem" == "hw" ] || [ "$oem" == "hwweb" ] || [ "$oem" == "hwso" ];then ver3=16 fi ver3=$[$ver3 * 10] if [ "$cpu" == "x86_64" ]; then ver3=$[$ver3 + 1] elif [ "$cpu" == "aarch64" ]; then ver3=$[$ver3 + 2] elif [ "$cpu" == "mips64" ]; then ver3=$[$ver3 + 3] fi ver3=$[$ver3 * 100] if [ "$sys" == "UnionTech" ];then # uos ... ver3=$[$ver3 + 20] elif [ "$sys" == "Kylin" ];then # kylin ... ver3=$[$ver3 + 21] else # unknown OS, set as linux ver3=$[$ver3 + 10] fi cd ../release/$syspath/$cpu/ rm * -R git checkout . git pull cd ../../../sdk git checkout . git pull cd ../code_device git checkout . git pull if [ "$oem" == "hgso" ] ;then ./build.sh hg elif [ "$oem" == "hwso" ];then ./build.sh hw elif [ "$oem" == "lscso" ];then ./build.sh lsc else ./build.sh $oem fi sleep 3 if [ $? -ne 0 ];then echo "code_device-------->编译失败" exit 1 fi cd ../code_app git checkout . git pull if [ "$oem" == "hgso" ] ;then ./build.sh hg elif [ "$oem" == "hwso" ];then ./build.sh hw elif [ "$oem" == "lscso" ];then ./build.sh lsc fi ./build.sh $oem if [ $? -ne 0 ];then echo "code_app-------->编译失败" exit 1 fi echo $minver echo "3rd version replacing pattern: "${ver3} echo $dpkgpath ver="$mainverstr.$minver.$ver3.$time2" echo $ver Version="Version: $ver" Architecture="Architecture: $dpkgarch" packagename="package: $dpkgpath" echo $Architecture $Version cd .. echo "dpkg/$syspath/$oem/usr/lib/$libpath" echo "dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib" sed -i "1s/.*/$packagename/g" dpkg/$syspath/$oem/DEBIAN/control sed -i "2s/.*/$Version/g" dpkg/$syspath/$oem/DEBIAN/control sed -i "3s/.*/$Architecture/g" dpkg/$syspath/$oem/DEBIAN/control rm dpkg/$syspath/$oem/etc/udev/rules.d/* cp dpkg/60-sane.rules dpkg/$syspath/$oem/etc/udev/rules.d/60-"$oem"sane.rules if [ $? -ne 0 ];then echo "not find:60-sane.rule " exit 1 fi if [ "$oem" == "lscweb" ] || [ "$oem" == "hwweb" ] || [ "$oem" == "hgweb" ]; then cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/$dpkgpath/bin elif [ "$oem" == "hgso" ] || [ "$oem" == "hwso" ] || [ "$oem" == "lscso" ];then cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/$dpkgpath/lib cp sdk/include/scannerlib/* dpkg/$syspath/$oem/opt/$dpkgpath/include rm dpkg/$syspath/$oem/opt/$dpkgpath/lib/*Scan rm dpkg/$syspath/$oem/opt/$dpkgpath/lib/*App else mv dpkg/$syspath/$oem/usr/lib/* dpkg/$syspath/$oem/usr/lib/$libpath if [ "$sys" == "UnionTech" ];then if [ "$cpu" == "x86_64" ]; then sed -i "s/aarch64-linux-gnu/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh sed -i "s/mips64el-linux-gnuabi64/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh sed -i "s/arm64/amd64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info sed -i "s/mips64el/amd64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info elif [ "$cpu" == "aarch64" ]; then sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh sed -i "s/mips64el-linux-gnuabi64/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh sed -i "s/amd64/arm64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info sed -i "s/mips64el/arm64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info elif [ "$cpu" == "mips64" ]; then sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh sed -i "s/aarch64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin/*.sh sed -i "s/amd64/mips64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info sed -i "s/arm64/mips64/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/info fi cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib/*Scan dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib/*App dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/bin cp dpkg/$syspath/$oem/opt/apps/$dpkgpath/files/lib/libsane-"$oem"sane.so dpkg/$syspath/$oem/usr/lib/$libpath/sane/libsane-"$oem"sane.so.1 else if [ "$cpu" == "x86_64" ]; then sed -i "s/aarch64-linux-gnu/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst sed -i "s/mips64el-linux-gnuabi64/$libpath/g" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst elif [ "$cpu" == "aarch64" ]; then sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst sed -i "s/mips64el-linux-gnuabi64/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst elif [ "$cpu" == "mips64" ]; then sed -i "s/x86_64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst sed -i "s/aarch64-linux-gnu/$libpath" dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin/*.sh dpkg/$syspath/$oem/DEBIAN/postinst fi cp release/$syspath/$cpu/* dpkg/$syspath/$oem/opt/apps/$dpkgpath/ cp dpkg/$syspath/$oem/opt/apps/$dpkgpath/libsane-"$oem"sane.so dpkg/$syspath/$oem/usr/lib/$libpath/sane/libsane-"$oem"sane.so.1 mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.so dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.ttf dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.key dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*.so.* dpkg/$syspath/$oem/opt/apps/$dpkgpath/lib mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*Scan dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin mv dpkg/$syspath/$oem/opt/apps/$dpkgpath/*App dpkg/$syspath/$oem/opt/apps/$dpkgpath/bin fi fi if [ $? -ne 0 ];then echo "not find:libsane-"$oem"sane.so" exit 1 fi pwd chmod 755 dpkg -R chmod 755 backup -R if [ -d "backup/$syspath/$oem/$ver" ];then rm -rf backup/$syspath/$oem/$ver fi if [ ! -d "backup/$syspath/$oem/$ver" ]; then mkdir -p backup/$syspath/$oem/$ver fi cp -rf dpkg/$syspath/$oem/* backup/$syspath/$oem/$ver path="" if [ "$oem" == "hg" ] || [ "$oem" == "hgweb" ] || [ "$oem" == "hgso" ];then dpkgtype="hg" if [ ! -d "backup/dpkg/$mainverstr.$minver/$time2/$dpkgtype" ];then mkdir -p "backup/dpkg/$mainverstr.$minver/$time2/$dpkgtype/" fi elif [ "$oem" == "lsc" ] || [ "$oem" == "lscweb" ] || [ "$oem" == "lscso" ];then dpkgtype="lsc" if [ ! -d "backup/dpkg/$mainverstr.$minver/$time2/$dpkgtype" ];then mkdir -p "backup/dpkg/$mainverstr.$minver/$time2/$dpkgtype/" fi else dpkgtype="hw" if [ ! -d "backup/dpkg/$mainverstr.$minver/$time2/$dpkgtype" ];then mkdir -p "backup/dpkg/$mainverstr.$minver/$time2/$dpkgtype/" fi fi dpkg -b backup/$syspath/$oem/$ver backup/dpkg/$mainverstr.$minver/$time2/$dpkgtype/$dpkgpath"_"$ver"_"$dpkgarch.deb getismount if [ $ismount == 0 ];then if [ -d "$FIND_FILE/$syspath" ];then cp -rf backup/dpkg/$mainverstr.$minver $FIND_FILE/$syspath fi fi