某个项目经常需要在改完代码之后修改版本号,大概有7、8个文件需要一个个改动然后check
in。我发现这个操作有个特点就是所有的版本号都是一样的,而且需要修改的字符串非常有规律,就是类似查找1, 6, 0, 16替换成1, 6, 0,
17这样,同时还有1,6,0,16替换成1,6,0,17(区别是逗号后面没有空格)。这种分析查找替换用Lua来做再简单不过了,故此写了这个脚本。
如果要使用的话,需要修改下面粗体部分,comment_string是将被作为注释加入clearcase的。old_string和new_string分别是当前版本号以及下一个版本号。projfolder一般只需要修改一次,就是clearcase的项目view目录。使用之前应该安装Lua
for windows。如果要用在其他的版本管理工具,就修改最后几行的命令就可以了。
从这个脚本我们可以看出Lua作为utility script的特点:开发快速、使用方便、代码清晰。对于反复重复的手工操作非常适合。
---will be used as comment
content-------------------------------
local comment_string =
"increase version"
----------------------------------------------
-----old string will be replaced by new
string
----------------------------------------------
local
old_string = "1, 6, 0, 16"
local new_string = "1, 6, 0,
17"
----------------------------------------------
----------------------------------------------
local projfolder =
[[D:\\VSS3\net_proj]]
----------------------------------------------
local files = {
projfolder .. [[\PrjFolder1\AFXEXRES.RC]],
projfolder .. [[\PrjRES\prstrres.rc]],
projfolder ..
[[\PrjSCN\enu\1747SCNenu.rc]],
projfolder ..
[[\PrjCNetCnfg\enu\enu.rc]],
projfolder ..
[[\PrjScanner\enu\enu.rc]],
projfolder ..
[[\PrjServices\enu\enu.rc]],
}
local old_string2 = string.gsub(old_string, " ", "")
print(old_string2)
local new_string2 = string.gsub(new_string, " ", "")
print(new_string2)
for _, filename in ipairs(files) do
print(filename)
-- remove read-only attribute.
os.execute("attrib -R " ..
filename)
-- open files
-------------------------------------------------
local f =
assert(io.open(filename, "rb"))
buffer = f:read("*all")
buffer = string.gsub(buffer, old_string, new_string)
buffer =
string.gsub(buffer, old_string2, new_string2)
f:close()
local outf = assert(io.open(filename, "wb"))
outf:write(buffer)
outf:close()
local cmd1 = [[cleartool checkout -reserved -usehijack -c "]] ..
comment_string .. [[" ]] .. filename
print(cmd1)
os.execute(cmd1)
local cmd2 = [[cleartool checkin -nc ]] .. filename
print(cmd2)
os.execute(cmd2)
end
分享到:
相关推荐
lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问...
LUA脚本支持库|LUA脚本支持库
FCEUX Lua 脚本的模拟退火实现自动搜索 NES 输入序列。 用法 准备 FCEUX。 打开一个ROM。 打开 Lua 脚本。 停止 Lua 脚本。 打开 TAS 编辑器。 运行 Lua 脚本。 请注意,脚本不会按下 START 按钮。请手动按下开始...
1.启动CodeBlocks新建一个控制台项目。把上面的5个文件覆盖到项目目录。 2.配置项目编译环境,把lua和tolua++类库和搜索路径包括进项目来。 2.双击build_pgk.bat 会新生成lua_hello.h调用文件。 3.运行编译即可看到...
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用...
一个用lua写的游戏脚本实例,是word格式的,值得一看,通过这个例子你可以了解到游戏中的脚本是怎么写的
lua脚本执行行数和次数统计的Dll,统计了lua执行的文件名,行数以及改行执行的次数,并输出到结果文件result.txt。包含了一个例子文件test.lua
适用于lua脚本的解密
项目实现的Lua脚本代码,有需要的朋友可以参考
Lua脚本支持库
freeswitch LUA 脚本reference lua 脚本reference lua 开发脚本指南
游戏引擎HGE结合Lua脚本 教程.zip
运行Lua脚本语句 运行Lua脚本文件 调用 Android API
lua链接redis的工具驱动代码
LUa脚本编辑器
做了那么多 Lua 脚本破解,我们来尝试写一个不能被破解的加密。 所谓不能被破解,并不是真正不能被破解,只是在没有密码的情况下很难破解。
stm32f103移植lua解释器,能够在片上运行lua语言脚本。 欢迎大家下载、学习、交流。
Lua是一种面向过程的简单轻量级的脚本语言,我编写了一些简单代码试图向C/C++程序员描述基本的Lua脚本系统使用,涉及: Lua库的使用 Lua基本语法 ...可以下载一个Windows上预编译好的版本Lua for Windows。
Lua是一种免费、开放的中间代码型的脚本语言,作者在研究了它的结构和 特点的基础上,对Lua运行...文章最后模 拟了一个仿真的游戏环境,分析了引擎与Lua脚本在游戏中各个模块的实现过 程,并构建了一个两者整合的框架。