新增命令行参数:-test,用于生成测试版本的产品版本信息,如pid.bid.0.0
This commit is contained in:
@@ -353,9 +353,9 @@ void PrintFullUsageExamples()
|
||||
_T("用法:\n")
|
||||
_T(" gitver (显示帮助后进入当前分支创建 tag 流程)\n")
|
||||
_T(" gitver rewrite [PEType可选]\n")
|
||||
_T(" gitver setver [pid] [repoPath可选]\n")
|
||||
_T(" gitver nuitkabuild [pid] [mainPy] [repoPath可选] [nuitka额外参数可选]\n")
|
||||
_T(" gitver nuitkapydbuild [pid] [modulePy] [repoPath可选] [nuitka额外参数可选]\n")
|
||||
_T(" gitver setver [pid] [repoPath可选] [-test可选]\n")
|
||||
_T(" gitver nuitkabuild [pid] [mainPy] [repoPath可选] [-test可选] [nuitka额外参数可选]\n")
|
||||
_T(" gitver nuitkapydbuild [pid] [modulePy] [repoPath可选] [-test可选] [nuitka额外参数可选]\n")
|
||||
_T("\n示例:\n")
|
||||
_T(" gitver\n")
|
||||
_T(" gitver rewrite\n")
|
||||
@@ -364,14 +364,18 @@ void PrintFullUsageExamples()
|
||||
_T(" gitver setver 5 E:\\Code\\OTH\\gitver\n")
|
||||
_T(" gitver setver 5\n")
|
||||
_T(" gitver setver 5 -f\n")
|
||||
_T(" gitver setver 5 -test\n")
|
||||
_T(" gitver nuitkabuild 5 main.py\n")
|
||||
_T(" gitver nuitkabuild 5 main.py -f\n")
|
||||
_T(" gitver nuitkabuild 5 main.py -test\n")
|
||||
_T(" gitver nuitkabuild 5 src\\app.py E:\\Code\\MyPyProj --standalone --output-dir=dist\n")
|
||||
_T(" gitver nuitkabuild 5 main.py --standalone -f\n")
|
||||
_T(" gitver nuitkapydbuild 5 module.py\n")
|
||||
_T(" gitver nuitkapydbuild 5 module.py -f\n")
|
||||
_T(" gitver nuitkapydbuild 5 module.py -test\n")
|
||||
_T(" gitver nuitkapydbuild 5 src\\core.py E:\\Code\\MyPyProj --output-dir=dist\n")
|
||||
_T("\n说明: nuitkabuild/nuitkapydbuild 中,-f 在额外参数开始前表示 gitver 选项;进入额外参数后会透传给 Nuitka。\n")
|
||||
_T("\n说明: nuitkabuild/nuitkapydbuild 中,-f/-test 在额外参数开始前表示 gitver 选项;进入额外参数后会透传给 Nuitka。\n")
|
||||
_T("-test: 将产品版本号的 major 和 minor 都置为 0(用于测试版本构建)。\n")
|
||||
_T("无参数时会读取当前分支最近三次 tag,并提示选择 major 加 1 或 minor 加 1,然后创建新 tag。\n");
|
||||
|
||||
_tprintf(_T("%s"), lpUsageText);
|
||||
@@ -575,7 +579,8 @@ int HandleSetVerCommand(int argc, TCHAR* argv[])
|
||||
|
||||
LPCTSTR lpRepoPath = NULL;
|
||||
BOOL bUseDefaultTagWhenMissing = FALSE;
|
||||
int nRepoArgRet = ParseSetVerOptions(argc, argv, lpRepoPath, bUseDefaultTagWhenMissing);
|
||||
BOOL bTestMode = FALSE;
|
||||
int nRepoArgRet = ParseSetVerOptions(argc, argv, lpRepoPath, bUseDefaultTagWhenMissing, bTestMode);
|
||||
if (nRepoArgRet != 0)
|
||||
{
|
||||
return nRepoArgRet;
|
||||
@@ -598,6 +603,17 @@ int HandleSetVerCommand(int argc, TCHAR* argv[])
|
||||
return nVersionRet;
|
||||
}
|
||||
|
||||
if (bTestMode)
|
||||
{
|
||||
int nDot1 = strProductVersion.Find(_T('.'));
|
||||
int nDot2 = (nDot1 >= 0) ? strProductVersion.Find(_T('.'), nDot1 + 1) : -1;
|
||||
if (nDot2 > nDot1)
|
||||
{
|
||||
strProductVersion = strProductVersion.Left(nDot2 + 1) + _T("0.0");
|
||||
}
|
||||
_tprintf(_T("[test] 已将 major/minor 置零: ProductVersion=%s\n"), strProductVersion.GetString());
|
||||
}
|
||||
|
||||
_tprintf(_T("ProductVersion=%s\n"), strProductVersion.GetString());
|
||||
_tprintf(_T("FileVersion=%s\n"), strFileVersion.GetString());
|
||||
|
||||
|
||||
@@ -10,10 +10,11 @@ void PrintInvalidRepoPathError(LPCTSTR lpRepoPath)
|
||||
_tprintf(_T("错误: 无效的仓库路径 %s\n"), lpRepoPath == NULL ? _T("<null>") : lpRepoPath);
|
||||
}
|
||||
|
||||
int ParseSetVerOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseDefaultTagWhenMissing)
|
||||
int ParseSetVerOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseDefaultTagWhenMissing, BOOL& bTestMode)
|
||||
{
|
||||
lpRepoPath = NULL;
|
||||
bUseDefaultTagWhenMissing = FALSE;
|
||||
bTestMode = FALSE;
|
||||
|
||||
for (int i = 3; i < argc; ++i)
|
||||
{
|
||||
@@ -24,6 +25,12 @@ int ParseSetVerOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseD
|
||||
continue;
|
||||
}
|
||||
|
||||
if (strArg.CompareNoCase(_T("-test")) == 0)
|
||||
{
|
||||
bTestMode = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (lpRepoPath == NULL)
|
||||
{
|
||||
if (!PathIsDirectory(argv[i]))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
void PrintInvalidRepoPathError(LPCTSTR lpRepoPath);
|
||||
int ParseSetVerOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseDefaultTagWhenMissing);
|
||||
int ParseSetVerOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseDefaultTagWhenMissing, BOOL& bTestMode);
|
||||
int ParseRewriteOptions(int argc, TCHAR* argv[], int& nPEType, BOOL& bForceRewrite);
|
||||
|
||||
@@ -13,11 +13,12 @@ void PrintCommandUsageAndExamples(LPCTSTR lpCommand, LPCTSTR lpRequiredArgs, LPC
|
||||
const UINT DEFAULT_MAJOR_WHEN_NO_TAG_FOR_NUITKA = 1;
|
||||
const UINT DEFAULT_MINOR_WHEN_NO_TAG_FOR_NUITKA = 0;
|
||||
|
||||
static int ParseNuitkaOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseDefaultTagWhenMissing, CString& strExtraArgs)
|
||||
static int ParseNuitkaOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseDefaultTagWhenMissing, CString& strExtraArgs, BOOL& bTestMode)
|
||||
{
|
||||
lpRepoPath = NULL;
|
||||
bUseDefaultTagWhenMissing = FALSE;
|
||||
strExtraArgs.Empty();
|
||||
bTestMode = FALSE;
|
||||
BOOL bExtraArgsStarted = FALSE;
|
||||
|
||||
for (int i = 4; i < argc; ++i)
|
||||
@@ -33,6 +34,12 @@ static int ParseNuitkaOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!bExtraArgsStarted && strArg.CompareNoCase(_T("-test")) == 0)
|
||||
{
|
||||
bTestMode = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!bExtraArgsStarted && lpRepoPath == NULL && !bOptionStyleArg && PathIsDirectory(argv[i]))
|
||||
{
|
||||
lpRepoPath = argv[i];
|
||||
@@ -110,7 +117,8 @@ static int HandleNuitkaBuildCommandCore(
|
||||
LPCTSTR lpRepoPath = NULL;
|
||||
BOOL bUseDefaultTagWhenMissing = FALSE;
|
||||
CString strExtraArgs;
|
||||
int nRepoArgRet = ParseNuitkaOptions(argc, argv, lpRepoPath, bUseDefaultTagWhenMissing, strExtraArgs);
|
||||
BOOL bTestMode = FALSE;
|
||||
int nRepoArgRet = ParseNuitkaOptions(argc, argv, lpRepoPath, bUseDefaultTagWhenMissing, strExtraArgs, bTestMode);
|
||||
if (nRepoArgRet != 0)
|
||||
{
|
||||
return nRepoArgRet;
|
||||
@@ -133,6 +141,17 @@ static int HandleNuitkaBuildCommandCore(
|
||||
return nVersionRet;
|
||||
}
|
||||
|
||||
if (bTestMode)
|
||||
{
|
||||
int nDot1 = strProductVersion.Find(_T('.'));
|
||||
int nDot2 = (nDot1 >= 0) ? strProductVersion.Find(_T('.'), nDot1 + 1) : -1;
|
||||
if (nDot2 > nDot1)
|
||||
{
|
||||
strProductVersion = strProductVersion.Left(nDot2 + 1) + _T("0.0");
|
||||
}
|
||||
_tprintf(_T("[test] 测试版本号: ProductVersion=%s\n"), strProductVersion.GetString());
|
||||
}
|
||||
|
||||
CString strNuitkaCmd;
|
||||
if (bBuildModule)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user