某个项目经常需要在改完代码之后修改版本号,大概有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
分享到:
相关推荐
2. **整合性**:作为“glue language”,Lua可以将不同组件或模块粘合在一起,形成一个完整的测试解决方案。在Test er这样的自动测试系统中,Lua用于协调软件控制、硬件控制和通信等不同部分,实现各部分之间的无缝...
它可能包括了创建Lua状态机,加载一个简单的Lua脚本(比如执行一些计算或操作),以及如何在C++和Lua之间交换数据。这个例子对于理解如何在实际项目中使用Lua作为扩展语言非常有帮助。 总结一下,本示例的核心知识...
例如,"luabindings"是一个Delphi绑定到Lua C API的项目,它允许你在Delphi中直接调用Lua函数和访问Lua全局变量。 安装完成后,我们需要在Delphi项目中引入相关的单元文件,如`luabindings.pas`或`luapascalapi.pas...
"100版"可能表示该库的一个版本号,随着技术的发展,库可能会有多个版本发布,每个新版本可能带来新的特性或修复已知问题。使用新版本时,需要注意与旧版本的兼容性,确保代码的稳定运行。 总结,LUA脚本支持库是...
"lua脚本执行行数和次数统计Dll"就是这样一个工具,它能够帮助开发者分析lua脚本的运行行为,提供关于脚本执行的详细信息。 这个Dll动态链接库专门设计用于统计lua脚本的执行行数和次数。通过加载这个Dll,你可以...
游戏开发中的一个重要环节是使用游戏引擎来创建交互式体验,而HGE(Hyper Game Engine)是一个面向初学者和专业人士的开源游戏开发框架。这个“游戏引擎HGE结合Lua脚本 教程.zip”压缩包提供了关于如何利用HGE与Lua...
"游戏脚本设计与实现" ...从提供的游戏脚本实例中,我们可以了解到游戏脚本设计的基本结构、游戏任务的设计、游戏机制的实现、游戏逻辑的编写、lua语言在游戏脚本中的应用、游戏脚本的优化和游戏脚本的测试等知识点。
lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问...
为了在STM32F103上运行Lua,首先需要一个经过优化的Lua编译版本,可能需要使用交叉编译工具链来生成适合微控制器的二进制代码。然后,需要在STM32的存储器中安排lua解释器和脚本的存储位置,通常包括RAM和Flash。...
在这个源码包中,"lua_test"是一个用C++编写的测试程序,它展示了如何在C++项目中集成和调用Lua脚本。在Visual Studio 2008中,你可以打开这个项目,查看其源代码,理解如何设置Lua环境,如何加载和运行lua脚本,...
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用...
对于Lua,一个良好的编辑器能极大地提升开发效率,例如提供对Lua语法的智能提示和代码格式化。 3. **LuaEdit**:从文件列表中可以看出,"LuaEdit"可能是这个脚本编辑器的名称。它可能包含多个组件,如LuaEdit.exe是...
1. 波特率设置:波特率是串口通信中非常关键的一个参数,它指定了串口每秒传输的比特数。在LUA脚本中,通过相应的API函数来设置串口通信的波特率。波特率设置对确保数据正确无误地发送和接收非常关键,不同的应用...
1.启动CodeBlocks新建一个控制台项目。把上面的5个文件覆盖到项目目录。 2.配置项目编译环境,把lua和tolua++类库和搜索路径包括进项目来。 2.双击build_pgk.bat 会新生成lua_hello.h调用文件。 3.运行编译即可看到...
* `script` 是第一个参数,为 Lua 5.1 脚本(字符串)。 * `numkeys` 指定后续参数有几个 key。 * `key [key ...]`,被操作的 key,可以多个,在 Lua 脚本中通过 `KEYS[1], KEYS[2]` 获取。 * `arg [arg ...]`,...
在Windows环境中,你可以通过命令行界面(CMD)调用`lua.exe`,并传入一个Lua脚本来运行。如果将`lua.exe`放在系统的PATH环境变量中,那么你可以在任何目录下直接运行lua命令来启动它,无需每次都指定完整路径。 `...
为了解决这个问题,出现了"Excel表转Lua脚本工具",它能将整理好的Excel表格数据一键转换成Lua脚本,极大地提高了工作效率。 首先,我们来理解这个工具的核心功能。Excel是一种广泛使用的电子表格程序,其强大的...
1. 创建一个C++项目,引入HGE的源码和库。 2. 设置项目配置,链接HGE所需的库。 3. 在项目中初始化HGE,并加载Lua环境。 4. 编写C++代码来调用Lua脚本,例如加载游戏场景、执行用户输入响应等。 5. 在Lua脚本中定义...