新增命令行参数:-test,用于生成测试版本的产品版本信息,如pid.bid.0.0
This commit is contained in:
@@ -353,9 +353,9 @@ void PrintFullUsageExamples()
|
|||||||
_T("用法:\n")
|
_T("用法:\n")
|
||||||
_T(" gitver (显示帮助后进入当前分支创建 tag 流程)\n")
|
_T(" gitver (显示帮助后进入当前分支创建 tag 流程)\n")
|
||||||
_T(" gitver rewrite [PEType可选]\n")
|
_T(" gitver rewrite [PEType可选]\n")
|
||||||
_T(" gitver setver [pid] [repoPath可选]\n")
|
_T(" gitver setver [pid] [repoPath可选] [-test可选]\n")
|
||||||
_T(" gitver nuitkabuild [pid] [mainPy] [repoPath可选] [nuitka额外参数可选]\n")
|
_T(" gitver nuitkabuild [pid] [mainPy] [repoPath可选] [-test可选] [nuitka额外参数可选]\n")
|
||||||
_T(" gitver nuitkapydbuild [pid] [modulePy] [repoPath可选] [nuitka额外参数可选]\n")
|
_T(" gitver nuitkapydbuild [pid] [modulePy] [repoPath可选] [-test可选] [nuitka额外参数可选]\n")
|
||||||
_T("\n示例:\n")
|
_T("\n示例:\n")
|
||||||
_T(" gitver\n")
|
_T(" gitver\n")
|
||||||
_T(" gitver rewrite\n")
|
_T(" gitver rewrite\n")
|
||||||
@@ -364,14 +364,18 @@ void PrintFullUsageExamples()
|
|||||||
_T(" gitver setver 5 E:\\Code\\OTH\\gitver\n")
|
_T(" gitver setver 5 E:\\Code\\OTH\\gitver\n")
|
||||||
_T(" gitver setver 5\n")
|
_T(" gitver setver 5\n")
|
||||||
_T(" gitver setver 5 -f\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\n")
|
||||||
_T(" gitver nuitkabuild 5 main.py -f\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 src\\app.py E:\\Code\\MyPyProj --standalone --output-dir=dist\n")
|
||||||
_T(" gitver nuitkabuild 5 main.py --standalone -f\n")
|
_T(" gitver nuitkabuild 5 main.py --standalone -f\n")
|
||||||
_T(" gitver nuitkapydbuild 5 module.py\n")
|
_T(" gitver nuitkapydbuild 5 module.py\n")
|
||||||
_T(" gitver nuitkapydbuild 5 module.py -f\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(" 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");
|
_T("无参数时会读取当前分支最近三次 tag,并提示选择 major 加 1 或 minor 加 1,然后创建新 tag。\n");
|
||||||
|
|
||||||
_tprintf(_T("%s"), lpUsageText);
|
_tprintf(_T("%s"), lpUsageText);
|
||||||
@@ -575,7 +579,8 @@ int HandleSetVerCommand(int argc, TCHAR* argv[])
|
|||||||
|
|
||||||
LPCTSTR lpRepoPath = NULL;
|
LPCTSTR lpRepoPath = NULL;
|
||||||
BOOL bUseDefaultTagWhenMissing = FALSE;
|
BOOL bUseDefaultTagWhenMissing = FALSE;
|
||||||
int nRepoArgRet = ParseSetVerOptions(argc, argv, lpRepoPath, bUseDefaultTagWhenMissing);
|
BOOL bTestMode = FALSE;
|
||||||
|
int nRepoArgRet = ParseSetVerOptions(argc, argv, lpRepoPath, bUseDefaultTagWhenMissing, bTestMode);
|
||||||
if (nRepoArgRet != 0)
|
if (nRepoArgRet != 0)
|
||||||
{
|
{
|
||||||
return nRepoArgRet;
|
return nRepoArgRet;
|
||||||
@@ -598,6 +603,17 @@ int HandleSetVerCommand(int argc, TCHAR* argv[])
|
|||||||
return nVersionRet;
|
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("ProductVersion=%s\n"), strProductVersion.GetString());
|
||||||
_tprintf(_T("FileVersion=%s\n"), strFileVersion.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);
|
_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;
|
lpRepoPath = NULL;
|
||||||
bUseDefaultTagWhenMissing = FALSE;
|
bUseDefaultTagWhenMissing = FALSE;
|
||||||
|
bTestMode = FALSE;
|
||||||
|
|
||||||
for (int i = 3; i < argc; ++i)
|
for (int i = 3; i < argc; ++i)
|
||||||
{
|
{
|
||||||
@@ -24,6 +25,12 @@ int ParseSetVerOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL& bUseD
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strArg.CompareNoCase(_T("-test")) == 0)
|
||||||
|
{
|
||||||
|
bTestMode = TRUE;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (lpRepoPath == NULL)
|
if (lpRepoPath == NULL)
|
||||||
{
|
{
|
||||||
if (!PathIsDirectory(argv[i]))
|
if (!PathIsDirectory(argv[i]))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
void PrintInvalidRepoPathError(LPCTSTR lpRepoPath);
|
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);
|
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_MAJOR_WHEN_NO_TAG_FOR_NUITKA = 1;
|
||||||
const UINT DEFAULT_MINOR_WHEN_NO_TAG_FOR_NUITKA = 0;
|
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;
|
lpRepoPath = NULL;
|
||||||
bUseDefaultTagWhenMissing = FALSE;
|
bUseDefaultTagWhenMissing = FALSE;
|
||||||
strExtraArgs.Empty();
|
strExtraArgs.Empty();
|
||||||
|
bTestMode = FALSE;
|
||||||
BOOL bExtraArgsStarted = FALSE;
|
BOOL bExtraArgsStarted = FALSE;
|
||||||
|
|
||||||
for (int i = 4; i < argc; ++i)
|
for (int i = 4; i < argc; ++i)
|
||||||
@@ -33,6 +34,12 @@ static int ParseNuitkaOptions(int argc, TCHAR* argv[], LPCTSTR& lpRepoPath, BOOL
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!bExtraArgsStarted && strArg.CompareNoCase(_T("-test")) == 0)
|
||||||
|
{
|
||||||
|
bTestMode = TRUE;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (!bExtraArgsStarted && lpRepoPath == NULL && !bOptionStyleArg && PathIsDirectory(argv[i]))
|
if (!bExtraArgsStarted && lpRepoPath == NULL && !bOptionStyleArg && PathIsDirectory(argv[i]))
|
||||||
{
|
{
|
||||||
lpRepoPath = argv[i];
|
lpRepoPath = argv[i];
|
||||||
@@ -110,7 +117,8 @@ static int HandleNuitkaBuildCommandCore(
|
|||||||
LPCTSTR lpRepoPath = NULL;
|
LPCTSTR lpRepoPath = NULL;
|
||||||
BOOL bUseDefaultTagWhenMissing = FALSE;
|
BOOL bUseDefaultTagWhenMissing = FALSE;
|
||||||
CString strExtraArgs;
|
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)
|
if (nRepoArgRet != 0)
|
||||||
{
|
{
|
||||||
return nRepoArgRet;
|
return nRepoArgRet;
|
||||||
@@ -133,6 +141,17 @@ static int HandleNuitkaBuildCommandCore(
|
|||||||
return nVersionRet;
|
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;
|
CString strNuitkaCmd;
|
||||||
if (bBuildModule)
|
if (bBuildModule)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user