将GIT或SVN版本号输入NSIS脚本

时间:2014-02-28 18:14:02

标签: git tortoisesvn git-svn nsis tortoisegit

我们这里有一个SVN存储库和一个GIT存储库。我们现在都有,因为我们试图说服其他员工使用后者就足够使用前者了。无论如何,我想将版本号合并到.exe文件中(使用或者)到我写的NSIS脚本中。但我似乎无法理解如何在代码中实现它。这是我到目前为止所做的。

Section 
nsExec::Exec '"git" describe head'
Pop $0 #return value/error/timeout
Pop $1 #printed text
DetailPrint "       Return value: $0"
DetailPrint "       Version printed: $1"
SectionEnd

伪代码是:如果GIT存在,GIT描述头,否则如果SVN存在,SVN信息解析修订版#,否则解析汇编信息(称为version.txt)

我将如何继续为NSIS编写代码?目标计算机是Windows 7,8& 8.1

使用版本1.4b.2和一些GIT哈希(如果GIT存在为真),最终输出应该类似于KART.-1.4b.3.nte3j-installer.exe。我所拥有的并不多,但除此之外.exe构建和安装就好了,它只是在那里获得转速。

1 个答案:

答案 0 :(得分:0)

如果您想获取修订号并将其作为文件名(或UI文本)的一部分用于您正在生成的设置,则必须使用编译时命令,如!system!searchparse ...

修改

!tempfile StdOut
!echo "${StdOut}"
!system '"svn" info c:\foo\trunk > "${stdout}"'
!searchparse /file  "${StdOut}" "Revision: " SVNREV
!delfile "${StdOut}"
!undef StdOut
Name "MyApp SVN.${SVNREV}"