#!/bin/sh
##########################################
#?客戶端版本更新系統
##########################################
#?CLIENT_INIT_VERSION?客戶端新版本,默認是0
#?CLIENT_OLD_VERSION??客戶端舊版本(存放在VERSION_FILE指定的文件中),當沒有時取CLIENT_INIT_VERSION
#?CLIENT_NEW_VERSION??客戶端新版本,www.linuxidc.com默認是CLIENT_OLD_VERSION+1
#?VERSION_FILE????????存放上次版本的文件
CLIENT_INIT_VERSION='0'
CLIENT_OLD_VERSION='0'
CLIENT_NEW_VERSION=''
VERSION_FILE='client_version.txt'
#?CLIENT_BASE_PATH????放置前端的目錄
#?VERSION_CONFIG_FILE?服務器前端版本配置文件
#?SVN_PATH????????????前端SVN地址
CLIENT_BASE_PATH='/data/ylzj_test/img/'
VERSION_CONFIG_FILE='/data/ylzj_test/sljweb/version.jsp'
SVN_PATH='http://192.168.14.138:8080/svn/slj_release/ylzj'
CLIENT_NEW_PATH=''
CLIENT_OLD_PATH=''
#更新是否成功
IF_SUCC=''
initVersionFileIfNoExist(){
if?[?-f?$VERSION_FILE?];then
echo?'[INFO]?Welcome?to?use?Client?Update?System.'
else
echo?'[INFO]?Welcome?to?use?Client?Update?System.'
echo?$CLIENT_INIT_VERSION?>?$VERSION_FILE
if?[?-f?$VERSION_FILE?];then
echo?'[SUCC]?CREATE?VERSION?FILE?'$VERSION_FILE
else
echo?'[FAIL]?CREATE?VERSION?FILE?'$VERSION_FILE
fi
fi
}
initClientNewVersion(){
CLIENT_OLD_VERSION=$(cat?$VERSION_FILE)
echo?"[INFO]?The?old?client?version?is?:?"$CLIENT_OLD_VERSION
CLIENT_NEW_VERSION=$(expr?$(cat?$VERSION_FILE)?+?1)
echo?'[INFO]?The?new?client?version?is?:?'$CLIENT_NEW_VERSION
CLIENT_NEW_PATH=$CLIENT_BASE_PATH$CLIENT_NEW_VERSION
CLIENT_OLD_PATH=$CLIENT_BASE_PATH$CLIENT_OLD_VERSION
}
checkIfFileExistAndDoSomething(){
tmpvar=$1
subpath=${tmpvar%/*}
existFile=${tmpvar##*/}
TMP_BACKUP_FLASH_TAR=''
if?[?-f?$1?-o?-d?$1?];then
echo?'[WARN]?Flash?dir?'$1'?has?exists,?it?will?be?tar?and?backup.'
TMP_BACKUP_FLASH_TAR=$existFile'.tar'
cd?$subpath
echo?'[INFO]?Archieving?'$existFile'?to?'$TMP_BACKUP_FLASH_TAR
tar?-zcvf?$TMP_BACKUP_FLASH_TAR?$existFile
echo?'[INFO]?Removing?dir?'$existFile
rm?-rf?$existFile
cd?-
fi
unset?tmpvar
unset?subpath
unset?existFile
unset?TMP_BACKUP_FLASH_TAR
}
prepareClientDir(){
checkIfFileExistAndDoSomething?$CLIENT_NEW_PATH
if?[?$CLIENT_INIT_VERSION?-eq?$CLIENT_OLD_VERSION?];then
#第一次使用
#創建目錄
echo?'[INFO]?First?create?the?flash?dir?'$CLIENT_NEW_PATH
mkdir?-p?$CLIENT_NEW_PATH
else
#非第一次使用,修改flash名字
echo?'[INFO]?Copying?'$CLIENT_OLD_PATH'?to?'$CLIENT_NEW_PATH
mv?$CLIENT_OLD_PATH?$CLIENT_NEW_PATH
fi
if?[?-d?$CLIENT_NEW_PATH?];then
IF_SUCC='TRUE'
fi
}
storeThisVersionIfSucc(){
if?[?-n?$IF_SUCC?];?then
echo?$CLIENT_NEW_VERSION?>?$VERSION_FILE
echo?""?>?$VERSION_CONFIG_FILE
fi
}
createClient(){
echo?'[INFO]?Checking?out?flash?version...'
svn?co?$SVN_PATH?$CLIENT_NEW_PATH?--username=bqli?--password=123456
echo?'[INFO]?Checking?out?has?finished.'
}
updateClient(){
echo?'[INFO]?Updating?flash?version...'
svn?update?$CLIENT_NEW_PATH
echo?'[INFO]?Updating?has?finished.'
}
createOrUpdateClient(){
if?[?$CLIENT_INIT_VERSION?-eq?$CLIENT_OLD_VERSION?];then
createClient
else
updateClient
fi
}
echoStartInfo(){
echo?'#################################################'
echo?'#?歡迎使用客戶端版本更新系統V1.0'
echo?'#################################################'
}
echoEndInfo(){
echo?'[SUCC]?Finished.'
}
clear
echoStartInfo
initVersionFileIfNoExist
initClientNewVersion
prepareClientDir
createOrUpdateClient
storeThisVersionIfSucc
echoEndInfo