首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Shell程序中引来可配置文件

2012-07-31 
Shell程序中引入可配置文件#!/usr/bin/env bashset -xexport ORIGDIR`dirname $0`export ABSDIR`cd ${OR

Shell程序中引入可配置文件

#!/usr/bin/env bashset -xexport ORIGDIR=`dirname $0`export ABSDIR=`cd ${ORIGDIR} && pwd`export COLUMNS=300ct=/usr/atria/bin/cleartoolsed=/bin/sedawk=/bin/awkdiff=/usr/bin/diffif [ $# -ne 2 ]; then    echo """Usage:./firmware.sh r4.0.firmware validate|init|unpack|install|all"""    exit 1fisource ${ORIGDIR}/firmware.confif [ -e "$1" ]; then    source $1export FIRMWARE_RELEASEelse    echo "Firmware file $1 not found."    exit 1fi#check if the software from website is uploaded to specified folderfirmware_validate_upload(){if [ ! -e "${FIRMWARE_UPLOADDIR}" ]; thenecho "firmware upload dir ${FIRMWARE_UPLOADDIR} not exist, will create it automatically"mkdir -p ${FIRMWARE_UPLOADDIR}fiif [ ! -e "${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}" ]; thenecho "firmware upload dir ${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE} not exist, will create it automatically"mkdir -p ${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}fifirmware_updir=${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}#check Wi4_RFH_pkg.binif [ ! -e "${firmware_updir}/Wi4_RFH_pkg.bin" ]; thenecho "${firmware_updir}/Wi4_RFH_pkg.bin not exists!"exit 1fi#check 2x installation packageif [ ! -e "${firmware_updir}/2x/physap_${FIRMWARE_PKG_PATTERN}_pkg.zip" ]; thenecho "${firmware_updir}/2x/physap_${FIRMWARE_PKG_PATTERN}_pkg.zip not exists!"exit 1fiif [ ! -e "${firmware_updir}/2x/Wi4_2s_DSP_pkg.bin" ]; thenecho "${firmware_updir}/2x/Wi4_2s_DSP_pkg.bin not exists!"exit 1fiif [ ! -e "${firmware_updir}/2x/Wi4_2s_MFPGA_pkg.bin" ]; thenecho "${firmware_updir}/2x/Wi4_2s_MFPGA_pkg.bin not exists!"exit 1fi#check 4x installation packageif [ ! -e "${firmware_updir}/4x/physap4x_${FIRMWARE_PKG_PATTERN}_pkg.zip" ]; thenecho "${firmware_updir}/4x/physap4x_${FIRMWARE_PKG_PATTERN}_pkg.zip not exists!"exit 1fiif [ ! -e "${firmware_updir}/4x/Wi4_4s_DSP_pkg.bin" ]; thenecho "${firmware_updir}/4x/Wi4_4s_DSP_pkg.bin not exists!"exit 1fiif [ ! -e "${firmware_updir}/4x/Wi4_4s_MFPGA_pkg.bin" ]; thenecho "${firmware_updir}/4x/Wi4_4s_MFPGA_pkg.bin not exists!"exit 1fiecho "Firmware release ${FIRMWARE_RELEASE} is uploaded under ${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}"echo "Firmware release ${FIRMWARE_RELEASE} is a valid upload"}#initialize the firmware work dir and log dirfirmware_init(){        echo "initialize firmware installation"        if [ ! -e "${FIRMWARE_WORKDIR}" ]; thenecho "firmware upload dir ${FIRMWARE_WORKDIR} not exist, will create it automatically"            mkdir -p ${FIRMWARE_WORKDIR}        fi        if [ -e "${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}" ]; thenecho "Firmware release already installed, please check again!"exit 1        fi        echo "initialize firmware work dir"        cd ${FIRMWARE_WORKDIR}        mkdir "FIRMWARE_${FIRMWARE_RELEASE}"        chmod 777 "FIRMWARE_${FIRMWARE_RELEASE}"        #initialize 2x        cd ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}        mkdir 2x        chmod 777 2x        cd 2x        mkdir phy_sap_api        cd phy_sap_api        mkdir lib        mkdir include        #initialize 4x        cd ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}        mkdir 4x        chmod 777 4x        cd 4x        mkdir phy_sap_api        cd phy_sap_api        mkdir lib        mkdir include        mkdir config        #initialize log direcho "initialize firmware log dir"if [ ! -e "${FIRMWARE_LOGDIR}/FIRMWARE_${FIRMWARE_RELEASE}" ]; thenecho "Firmware log dir not exist, will create it automatically"mkdir -p ${FIRMWARE_LOGDIR}/FIRMWARE_${FIRMWARE_RELEASE}chmod 777 ${FIRMWARE_LOGDIR}/FIRMWARE_${FIRMWARE_RELEASE}        fi        echo "firmware working dir is initialized."}#unpack the softwarefirmware_unpack(){        echo "unpack firmware..."if [ ! -e "${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}/2x/phy_sap_api" ]; thenecho "Please invoke firmeate init method at first"exit 1fi #copy package to working direcho "copy package to working dir ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}"cp ${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}/Wi4_RFH_pkg.bin ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}/2x/phy_sap_apicp ${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}/2x/* ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}/2x/phy_sap_apicp ${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}/Wi4_RFH_pkg.bin ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}/4x/phy_sap_apicp ${FIRMWARE_UPLOADDIR}/FIRMWARE_${FIRMWARE_RELEASE}/4x/* ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}/4x/phy_sap_api        #unpack 2x        cd ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}/2x/phy_sap_api        if [ ! -e "physap_${FIRMWARE_PKG_PATTERN}_pkg.zip" ]; then                echo "Firmware package has not been uploaded, please upload it before go ahead."                exit 1        fi        #ls -ltr        unzip physap_${FIRMWARE_PKG_PATTERN}_pkg.zip        #ls -ltr        rm physap_${FIRMWARE_PKG_PATTERN}_pkg.zip        rm physap_lib.a        mv physap.out lib/        #ls -ltr lib/        mv physap_inc.zip include/        #ls -ltr        cd include/        unzip physap_inc.zip        rm physap_inc.zip        #ls -ltr        #unpack 4x        cd ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}/4x/phy_sap_apiif [ ! -e "physap4x_${FIRMWARE_PKG_PATTERN}_pkg.zip" ]; thenecho "Firmware package has not been uploaded, please upload it before go ahead."exit 1        fi        #ls -ltr        unzip physap4x_${FIRMWARE_PKG_PATTERN}_pkg.zip        rm physap4x_${FIRMWARE_PKG_PATTERN}_pkg.zip        mv physap4s.out lib/        #ls -ltr lib/        mv physap4s.cfg config/        #ls -ltr config/        mv physap4x_inc.zip include/        #ls -ltr        cd include/        unzip physap4x_inc.zip        rm physap4x_inc.zip        #ls -ltr        echo "unpacked firmware to ${FIRMWARE_WORKDIR}/FIRMWARE_${FIRMWARE_RELEASE}"}import_modem(){modem=$1if [ ! -e "${FIRMWARE_LOGDIR}/FIRMWARE_${FIRMWARE_RELEASE}" ]; thenecho "Firmware log dir not exist, will create it automatically"mkdir -p ${FIRMWARE_LOGDIR}/FIRMWARE_${FIRMWARE_RELEASE}chmod 777 ${FIRMWARE_LOGDIR}/FIRMWARE_${FIRMWARE_RELEASE}filog=${FIRMWARE_LOGDIR}/FIRMWARE_${FIRMWARE_RELEASE}/${modem}.logtouch ${log}nohup time ${ct} setview -exec "${ABSDIR}/firmware_import.sh ${modem}" ${FIRMWARE_VIEW} > ${log} 2>&1if [ $? == 1 ]; thencat ${log}echo "modem ${modem} failed to be imported, please check log ${log}"exit 1fiecho "modem ${modem} is imported, please check log ${log}"}#install the firmware, should running with apbldfirmware_import(){echo "install firmware..."import_modem '2x'import_modem '4x'echo "installed firmware..."}case "${2}" invalidate)firmware_validate_upload;;init)firmware_init;;unpack)firmware_unpack;;import)firmware_import;;all)firmware_validate_uploadfirmware_initfirmware_unpackfirmware_import;;*)echo "Please specify validate,init,unpack,install or all as the second arg"exit 1;;esacexit 0

热点排行