【新增】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
-c,--cachemetafile <meta file> 可选参数。 meta缓存文件名。 默认为 .cache.meta
-w,--watch <dir1;dir2...> 可选参数。 监测目录或者目录列表,以逗号';'分隔。当开启此选项后,生成结束后不会退出程序,而是进入自动生成模式。监听到目标目录发生变化后,自动重新运行生成。省去改动后手动运行生成脚本的麻烦。
--generateonly 可选参数。 仅生成。不从服务器下载生成结果。可以用于检查服务器是否能成功生成。
-h,--help 可选参数。显示帮助信息
-- <job options> 必选参数。 从此参数起,便是 不同job的特有选项

View File

@ -30,6 +30,8 @@ namespace Luban.Client
public string CacheMetaInfoFile { get; set; } = ".cache.meta";
public string[] WatchDir { get; set; }
public bool GenerateOnly { get; set; }
}
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
-c --cachemetafile <file> cache meta file name. default is '.cache.meta'
-w --watch <dir> watch data change and regenerate.
--generateonly generate only. not download generate results.
-h --help show usage
");
}
@ -117,6 +120,11 @@ Options:
ops.WatchDir = args[++i].Split(';', ',');
break;
}
case "--generateonly":
{
ops.GenerateOnly = true;
break;
}
case "--":
{
++i;
@ -271,19 +279,22 @@ Options:
return 1;
}
var tasks = new List<Task>();
foreach (var fg in res.FileGroups)
if (!options.GenerateOnly)
{
tasks.Add(DownloadFileUtil.DownloadGeneratedFiles(fg.Dir, fg.Files));
}
var tasks = new List<Task>();
foreach (var f in res.ScatteredFiles)
{
tasks.Add(DownloadFileUtil.DownloadGeneratedFile(f));
}
foreach (var fg in res.FileGroups)
{
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;
}
}

View File

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