2014-02-28 87 views
0

我們有一個SVN存儲庫以及一個GIT存儲庫。我們現在都有,因爲我們正試圖說服其他員工使用後者就足夠了,而不是使用前者。無論如何,我想將版本號納入.exe文件(使用或者)到我寫的NSIS腳本中。但我似乎無法理解如何在代碼中實現它。這是我迄今爲止所擁有的。將GIT或SVN修訂號碼導入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的構建和安裝都很好,它只是在那裏獲得版本號。

回答

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}"