feat: get arch and os from env
This commit is contained in:
116
bin/build.sh
116
bin/build.sh
@@ -21,14 +21,21 @@ usage() {
|
|||||||
echo "Usage: $0 [ocs|scp|ussdgw|cproxy|goproxy] [Option] "
|
echo "Usage: $0 [ocs|scp|ussdgw|cproxy|goproxy] [Option] "
|
||||||
echo
|
echo
|
||||||
echo "Build OCS package, option as follow:"
|
echo "Build OCS package, option as follow:"
|
||||||
echo " ocs|scp|ussdgw, ocs: OCS package build by dpkg"
|
echo " ocs|scp|ussdgw, ocs: OCS package build by dpkg"
|
||||||
echo " scp: SCP package build by dpkg"
|
echo " scp: SCP package build by dpkg"
|
||||||
echo " ussdgw: USSD Gateway package, build by dpkg"
|
echo " ussdgw: USSD Gateway package, build by dpkg"
|
||||||
echo
|
echo
|
||||||
echo " Option:"
|
echo " Option:"
|
||||||
echo " -t [norfolk|cook|pncc|zed] Build binary tag, only for ocs, default is pncc"
|
echo " -t [norfolk|cook|pncc|zed] Build binary tag, only for ocs, default is pncc"
|
||||||
echo " -h, --help Display this help and exit"
|
echo " -h, --help Display this help and exit"
|
||||||
echo
|
echo " cproxy|goproxy, cproxy: C RestProxy package build by dpkg"
|
||||||
|
echo " goproxy: Golang RestProxy package build by dpkg"
|
||||||
|
echo
|
||||||
|
echo "Example:"
|
||||||
|
echo " $0 ocs -t pncc"
|
||||||
|
echo " $0 scp -t zed "
|
||||||
|
echo " $0 cproxy"
|
||||||
|
echo " $0 goproxy"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +73,73 @@ while getopts "t:h" option; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Get the output of uname -a
|
||||||
|
uname_a=$(uname -a)
|
||||||
|
# Extract hardware architecture
|
||||||
|
if [[ $uname_a =~ "x86_64" ]]; then
|
||||||
|
deb_arch=amd64
|
||||||
|
rpm_arch=x86_64
|
||||||
|
rel_arch=amd64
|
||||||
|
elif [[ $uname_a =~ "aarch64" ]]; then
|
||||||
|
deb_arch=arm64
|
||||||
|
rpm_arch=aarch64
|
||||||
|
rel_arch=arm64
|
||||||
|
echo "ARM64 is not supported"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Unsupported hardware architecture"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_os_info() {
|
||||||
|
if [ -f /etc/os-release ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
echo $ID
|
||||||
|
else
|
||||||
|
echo "unknown"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_os_version() {
|
||||||
|
if [ -f /etc/os-release ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
echo $VERSION_ID
|
||||||
|
else
|
||||||
|
echo "unknown"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
os_version=$(get_os_version)
|
||||||
|
case $(get_os_info) in
|
||||||
|
ubuntu|debian)
|
||||||
|
if [[ "$os_version" == "22.04" ]]; then
|
||||||
|
rel_os=ub22
|
||||||
|
elif [[ "$os_version" == "12.04" ]]; then
|
||||||
|
rel_os=ub12
|
||||||
|
else
|
||||||
|
echo "Unsupported Ubuntu version: $os_version"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
pkg_ext=deb
|
||||||
|
;;
|
||||||
|
centos|rhel)
|
||||||
|
rel_os=ct8
|
||||||
|
pkg_ext=rpm
|
||||||
|
echo "CentOS/RHEL is not supported"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
openEuler)
|
||||||
|
rel_os=oe20
|
||||||
|
pkg_ext=rpm
|
||||||
|
echo "openEuler is not supported"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported OS"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
make_ocs_bin()
|
make_ocs_bin()
|
||||||
{
|
{
|
||||||
cd $src_ocs_dir
|
cd $src_ocs_dir
|
||||||
@@ -75,7 +149,7 @@ make_ocs_bin()
|
|||||||
if [ -z $bin_tag ]; then
|
if [ -z $bin_tag ]; then
|
||||||
bin_tag="pncc"
|
bin_tag="pncc"
|
||||||
fi
|
fi
|
||||||
echo -n "make $bin_tag ... "
|
echo -n "make $bin_tag $pkg_type ... "
|
||||||
make ${bin_tag} 1>make.log 2>&1
|
make ${bin_tag} 1>make.log 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "failed"
|
echo "failed"
|
||||||
@@ -92,6 +166,14 @@ make_cproxy_bin()
|
|||||||
echo -n "make clean ... "
|
echo -n "make clean ... "
|
||||||
make clean 1>/dev/null 2>&1
|
make clean 1>/dev/null 2>&1
|
||||||
echo "done"
|
echo "done"
|
||||||
|
echo -n "configure third lib ... "
|
||||||
|
make 3rdlib_config 1>make.log 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "failed"
|
||||||
|
echo "Please refer to make.log for details"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "done"
|
||||||
echo -n "make c restproxy ... "
|
echo -n "make c restproxy ... "
|
||||||
make 1>make.log 2>&1
|
make 1>make.log 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
@@ -139,7 +221,7 @@ pre_ocs_build()
|
|||||||
mkdir -p $deb_build_dir/lib/systemd/system
|
mkdir -p $deb_build_dir/lib/systemd/system
|
||||||
mkdir -p $deb_build_dir/usr/local/agt/etc/tariff
|
mkdir -p $deb_build_dir/usr/local/agt/etc/tariff
|
||||||
|
|
||||||
release_dir=$release_root/ocs/amd64
|
release_dir=$release_root/ocs/$rel_arch
|
||||||
mkdir -p $release_dir
|
mkdir -p $release_dir
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +234,7 @@ pre_scp_build()
|
|||||||
mkdir -p $deb_build_dir/usr/local/scp/tools
|
mkdir -p $deb_build_dir/usr/local/scp/tools
|
||||||
mkdir -p $deb_build_dir/lib/systemd/system
|
mkdir -p $deb_build_dir/lib/systemd/system
|
||||||
|
|
||||||
release_dir=$release_root/scp/amd64
|
release_dir=$release_root/scp/$rel_arch
|
||||||
mkdir -p $release_dir
|
mkdir -p $release_dir
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +247,7 @@ pre_ussdgw_build()
|
|||||||
mkdir -p $deb_build_dir/usr/local/ussdgw/tools
|
mkdir -p $deb_build_dir/usr/local/ussdgw/tools
|
||||||
mkdir -p $deb_build_dir/lib/systemd/system
|
mkdir -p $deb_build_dir/lib/systemd/system
|
||||||
|
|
||||||
release_dir=$release_root/ussdgw/amd64
|
release_dir=$release_root/ussdgw/$rel_arch
|
||||||
mkdir -p $release_dir
|
mkdir -p $release_dir
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,7 +260,7 @@ pre_cproxy_build()
|
|||||||
mkdir -p $deb_build_dir/usr/local/restproxy/log
|
mkdir -p $deb_build_dir/usr/local/restproxy/log
|
||||||
mkdir -p $deb_build_dir/lib/systemd/system
|
mkdir -p $deb_build_dir/lib/systemd/system
|
||||||
|
|
||||||
release_dir=$release_root/cproxy/amd64
|
release_dir=$release_root/cproxy/$rel_arch
|
||||||
mkdir -p $release_dir
|
mkdir -p $release_dir
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,7 +273,7 @@ pre_goproxy_build()
|
|||||||
mkdir -p $deb_build_dir/usr/local/restproxy/log
|
mkdir -p $deb_build_dir/usr/local/restproxy/log
|
||||||
mkdir -p $deb_build_dir/lib/systemd/system
|
mkdir -p $deb_build_dir/lib/systemd/system
|
||||||
|
|
||||||
release_dir=$release_root/goproxy/amd64
|
release_dir=$release_root/goproxy/$rel_arch
|
||||||
mkdir -p $release_dir
|
mkdir -p $release_dir
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,7 +293,7 @@ case $pkg_type in
|
|||||||
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
||||||
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
||||||
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
||||||
deb_file_name=ocs-r${release_ver}-ub22.deb
|
deb_file_name=ocs-r${release_ver}-${rel_os}.${pkg_ext}
|
||||||
|
|
||||||
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
||||||
;;
|
;;
|
||||||
@@ -229,7 +311,7 @@ case $pkg_type in
|
|||||||
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
||||||
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
||||||
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
||||||
deb_file_name=scp-r${release_ver}-ub22.deb
|
deb_file_name=scp-r${release_ver}-${rel_os}.${pkg_ext}
|
||||||
|
|
||||||
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
||||||
;;
|
;;
|
||||||
@@ -247,7 +329,7 @@ case $pkg_type in
|
|||||||
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
||||||
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
||||||
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
||||||
deb_file_name=ocs-r${release_ver}-ub22.deb
|
deb_file_name=ocs-r${release_ver}-${rel_os}.${pkg_ext}
|
||||||
|
|
||||||
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
||||||
;;
|
;;
|
||||||
@@ -264,11 +346,15 @@ case $pkg_type in
|
|||||||
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
||||||
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
||||||
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
||||||
deb_file_name=restproxy-r${release_ver}-ub22.deb
|
deb_file_name=restproxy-r${release_ver}-${rel_os}.${pkg_ext}
|
||||||
|
|
||||||
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
||||||
;;
|
;;
|
||||||
goproxy)
|
goproxy)
|
||||||
|
if [ $rel_os == "ub12" ]; then
|
||||||
|
echo "Ubuntu 12.04 is not supported"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
pre_common_build
|
pre_common_build
|
||||||
pre_goproxy_build
|
pre_goproxy_build
|
||||||
make_goproxy_bin
|
make_goproxy_bin
|
||||||
@@ -281,7 +367,7 @@ case $pkg_type in
|
|||||||
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
cp $src_pkg_dir/DEBIAN/* $deb_build_dir/DEBIAN
|
||||||
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
sed -i "s/YYYYMMDD/${release_date}/g" $deb_build_dir/DEBIAN/control
|
||||||
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
release_ver=$(grep '^Version:' ${deb_build_dir}/DEBIAN/control | awk '{print $2}')
|
||||||
deb_file_name=restproxy-r${release_ver}-ub22.deb
|
deb_file_name=restproxy-r${release_ver}-${rel_os}.${pkg_ext}
|
||||||
|
|
||||||
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
fakeroot dpkg-deb --build $deb_build_dir $release_dir/$deb_file_name
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user