【新增】Luban.Client新增 --generateonly 选项。只生成,不下载生成结果,可用于单纯地执行生成过程,检查数据合法性。

main
walon 2021-11-02 17:24:43 +08:00
parent 2e047ce56e
commit 8a41b5bc83
3 changed files with 43 additions and 20 deletions

View File

@ -63,6 +63,7 @@ Luban工具有两种部属方式。
-l,--loglevel <log level> 可选参数。 日志级别。默认为INFO。有效值有: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF -l,--loglevel <log level> 可选参数。 日志级别。默认为INFO。有效值有: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
-c,--cachemetafile <meta file> 可选参数。 meta缓存文件名。 默认为 .cache.meta -c,--cachemetafile <meta file> 可选参数。 meta缓存文件名。 默认为 .cache.meta
-w,--watch <dir1;dir2...> 可选参数。 监测目录或者目录列表,以逗号';'分隔。当开启此选项后,生成结束后不会退出程序,而是进入自动生成模式。监听到目标目录发生变化后,自动重新运行生成。省去改动后手动运行生成脚本的麻烦。 -w,--watch <dir1;dir2...> 可选参数。 监测目录或者目录列表,以逗号';'分隔。当开启此选项后,生成结束后不会退出程序,而是进入自动生成模式。监听到目标目录发生变化后,自动重新运行生成。省去改动后手动运行生成脚本的麻烦。
--generateonly 可选参数。 仅生成。不从服务器下载生成结果。可以用于检查服务器是否能成功生成。
-h,--help 可选参数。显示帮助信息 -h,--help 可选参数。显示帮助信息
-- <job options> 必选参数。 从此参数起,便是 不同job的特有选项 -- <job options> 必选参数。 从此参数起,便是 不同job的特有选项

View File

@ -30,6 +30,8 @@ namespace Luban.Client
public string CacheMetaInfoFile { get; set; } = ".cache.meta"; public string CacheMetaInfoFile { get; set; } = ".cache.meta";
public string[] WatchDir { get; set; } public string[] WatchDir { get; set; }
public bool GenerateOnly { get; set; }
} }
private static NLog.Logger s_logger; private static NLog.Logger s_logger;
@ -51,6 +53,7 @@ Options:
-l --loglevel <level> log level. default INFO. avaliable value: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF -l --loglevel <level> log level. default INFO. avaliable value: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
-c --cachemetafile <file> cache meta file name. default is '.cache.meta' -c --cachemetafile <file> cache meta file name. default is '.cache.meta'
-w --watch <dir> watch data change and regenerate. -w --watch <dir> watch data change and regenerate.
--generateonly generate only. not download generate results.
-h --help show usage -h --help show usage
"); ");
} }
@ -117,6 +120,11 @@ Options:
ops.WatchDir = args[++i].Split(';', ','); ops.WatchDir = args[++i].Split(';', ',');
break; break;
} }
case "--generateonly":
{
ops.GenerateOnly = true;
break;
}
case "--": case "--":
{ {
++i; ++i;
@ -271,19 +279,22 @@ Options:
return 1; return 1;
} }
var tasks = new List<Task>(); if (!options.GenerateOnly)
foreach (var fg in res.FileGroups)
{ {
tasks.Add(DownloadFileUtil.DownloadGeneratedFiles(fg.Dir, fg.Files)); var tasks = new List<Task>();
}
foreach (var f in res.ScatteredFiles) foreach (var fg in res.FileGroups)
{ {
tasks.Add(DownloadFileUtil.DownloadGeneratedFile(f)); tasks.Add(DownloadFileUtil.DownloadGeneratedFiles(fg.Dir, fg.Files));
} }
Task.WaitAll(tasks.ToArray()); foreach (var f in res.ScatteredFiles)
{
tasks.Add(DownloadFileUtil.DownloadGeneratedFile(f));
}
Task.WaitAll(tasks.ToArray());
}
return 0; return 0;
} }
} }

View File

@ -34,6 +34,8 @@ namespace Luban.ClientServer
public string[] WatchDir { get; set; } public string[] WatchDir { get; set; }
public bool GenerateOnly { get; set; }
[Option('t', "template_search_path", Required = false, HelpText = "string template search path.")] [Option('t', "template_search_path", Required = false, HelpText = "string template search path.")]
public string TemplateSearchPath { get; set; } public string TemplateSearchPath { get; set; }
} }
@ -55,6 +57,7 @@ Options:
-l --loglevel <level> log level. default INFO. avaliable value: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF -l --loglevel <level> log level. default INFO. avaliable value: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
-c --cachemetafile <file> cache meta file name. default is '.cache.meta' -c --cachemetafile <file> cache meta file name. default is '.cache.meta'
-w --watch <dir> watch data change and regenerate. -w --watch <dir> watch data change and regenerate.
--generateonly generate only. not download generate results.
-t --template_search_path <dir> additional template search path -t --template_search_path <dir> additional template search path
-h --help show usage -h --help show usage
"); ");
@ -122,6 +125,11 @@ Options:
ops.WatchDir = args[++i].Split(';', ','); ops.WatchDir = args[++i].Split(';', ',');
break; break;
} }
case "--generateonly":
{
ops.GenerateOnly = true;
break;
}
case "-t": case "-t":
case "--template_search_path": case "--template_search_path":
{ {
@ -305,19 +313,22 @@ Options:
return 1; return 1;
} }
var tasks = new List<Task>(); if (!options.GenerateOnly)
foreach (var fg in res.FileGroups)
{ {
tasks.Add(DownloadFileUtil.DownloadGeneratedFiles(fg.Dir, fg.Files)); var tasks = new List<Task>();
}
foreach (var f in res.ScatteredFiles) foreach (var fg in res.FileGroups)
{ {
tasks.Add(DownloadFileUtil.DownloadGeneratedFile(f)); tasks.Add(DownloadFileUtil.DownloadGeneratedFiles(fg.Dir, fg.Files));
} }
Task.WaitAll(tasks.ToArray()); foreach (var f in res.ScatteredFiles)
{
tasks.Add(DownloadFileUtil.DownloadGeneratedFile(f));
}
Task.WaitAll(tasks.ToArray());
}
return 0; return 0;
} }
} }