#!/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

linux 脚本 写更新,用Shell写的游戏客户端更新脚本相关推荐

  1. linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  2. 更新失败无法连接更新服务器未响应,逆水寒客户端更新失败_长时间停滞未响应相关问题解答[图]...

    逆水寒每周四就会进行例行维护,很多小伙伴的电脑在每次更新中都会出现各种各样的相关问题,像一些基本的逆水寒客户端更新失败,长时间停滞未响应相关问题,我们一起来看看官方是如何解答的吧! 一.逆水寒客户端更 ...

  3. 用Shell写的游戏客户端更新脚本

    之前我们更新客户端的方法是,一个脚本,把svn的客户端版本检出来.但是每次都重复检出. 由于现在客户端已经有800+M,每次检出基本都需要等待5分钟左右.因此应测试要求,写了个脚本, 每次只检出更新部 ...

  4. 如何快速制作脚本?间隔时间自动使用按键精灵游戏技能辅助脚本

    来源:按键学院   [按键精灵] 脚本使用说明: 1. 此脚本可应用于各种网络游戏,用于自动间隔时间使用辅助技能,可自定义三个技能和间隔时间. 2. 脚本开始运行前请先在按键精灵主界面上设置自定义参数 ...

  5. 7月30号csonline 服务器维护,DOTA2 7月30日更新日志:7.19游戏性更新

    综合: - 每日奖励英雄从2个魔法芒果改为1个 - 夜魇主野区圣坛下方悬崖附近增加2棵树 英雄: 亚巴顿 - 迷雾缠绕的魔法消耗从50/60/70/80点降低至50点 远古冰魄 - 冰霜漩涡的魔法消耗 ...

  6. 游戏热更新(XLua)专题一(知识点)

    课程学习笔记:https://ke.qq.com/course/337826 ps:建议搭配课程学习,吃透知识点,解决疑惑:什么是xlua,热更新和xlua什么关系,xlua和lua又是什么关系?等等 ...

  7. 定时启动软件的脚本。同时也适用于定时打开游戏。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.脚本简介 二.脚本内容 三.脚本自启动 总结 一.脚本简介 每天上班族上班第一件事就是登录各种办公软件,今天給大家带来了 ...

  8. Python做手游自动刷图脚本,问道手游目前很火,此脚本应用泛滥!

    效果: 叙述: 所有玩刷副本类游戏的朋友都会觉得很枯燥,一次又一次的重复性工作甚至让许多朋友放弃了那款游戏.最近问道手游很火,网络上出现了许多自动刷道的脚本,但是这款例外,因为它是由脚本之王Pytho ...

  9. shell写的检测linux系统硬件信息的脚本

    前面用python写了一个检测windonws硬件信息的脚本,这里是很久之前用shell写的一个linux系统硬件信息检测脚本,可以对照看一下.检测内容基本一样:操作系统信息.内存.CPU.硬盘分区及 ...

最新文章

  1. MongoDB简单操作
  2. 用linux下常用命令wget进行整站下载(递归下载至本地)
  3. 2022QS世界大学排名:清北跻身世界前20
  4. 网络技术等级考试知识点
  5. innerHTML的用法
  6. linux 共享移动硬盘,随时登陆上QQ 自带Linux移动硬盘实战
  7. SQL条件语句(IF, CASE WHEN, IF NULL)
  8. JEECG第17期架构培训班15号开班啦!每期十个名额,想报名的抓紧时间啦!
  9. 移动端页面(响应式)
  10. Oracle 多表查询
  11. python length从哪个包引入_python collections包
  12. Swf Decrypt详解
  13. VMware Vsphere 虚拟化
  14. 电脑内录录音软件,可选择录音来源
  15. java实现简单的文字pk的小游戏
  16. 用canvas画圆饼图
  17. stm32f107rc使用系统时钟延时不准
  18. jsp中点击验证码刷新验证码
  19. 代理模式(自己实现源码)
  20. AI编程 亚马逊 CodeWhisperer VS GitHub Copilot

热门文章

  1. 计算机基础:存储系统知识笔记(一)
  2. IIS 错误代码分析手册
  3. python模型_python 模型的释义
  4. 平面设计师和ui设计师_平面设计师为什么要享受所有乐趣?
  5. 你提交代码前没有校验?巧用gitHooks解决
  6. Laravel Passport里的授权类型介绍
  7. MySQL服务读取参数文件my.cnf的规律研究探索
  8. javascript获取时间差
  9. Testing - 软件测试知识梳理 - 自动化测试
  10. 打造最舒适的webview调试环境