【重构】略微重构GenArgs类,提出公共基类及公共检查函数
parent
12e6df6090
commit
d7dbdf4b94
|
|
@ -26,10 +26,8 @@ namespace Luban.Job.Cfg
|
||||||
{
|
{
|
||||||
private static readonly NLog.Logger s_logger = NLog.LogManager.GetCurrentClassLogger();
|
private static readonly NLog.Logger s_logger = NLog.LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
class GenArgs
|
class GenArgs : GenArgsBase
|
||||||
{
|
{
|
||||||
[Option('d', "define_file", Required = true, HelpText = "define file")]
|
|
||||||
public string DefineFile { get; set; }
|
|
||||||
|
|
||||||
[Option("input_data_dir", Required = true, HelpText = "input data dir")]
|
[Option("input_data_dir", Required = true, HelpText = "input data dir")]
|
||||||
public string InputDataDir { get; set; }
|
public string InputDataDir { get; set; }
|
||||||
|
|
@ -37,9 +35,6 @@ namespace Luban.Job.Cfg
|
||||||
[Option('v', "validate_root_dir", Required = false, HelpText = "validate root directory")]
|
[Option('v', "validate_root_dir", Required = false, HelpText = "validate root directory")]
|
||||||
public string ValidateRootDir { get; set; }
|
public string ValidateRootDir { get; set; }
|
||||||
|
|
||||||
[Option("output_code_dir", Required = false, HelpText = "output code directory")]
|
|
||||||
public string OutputCodeDir { get; set; }
|
|
||||||
|
|
||||||
[Option("output_data_dir", Required = true, HelpText = "output data directory")]
|
[Option("output_data_dir", Required = true, HelpText = "output data directory")]
|
||||||
public string OutputDataDir { get; set; }
|
public string OutputDataDir { get; set; }
|
||||||
|
|
||||||
|
|
@ -49,7 +44,7 @@ namespace Luban.Job.Cfg
|
||||||
[Option("output_data_json_monolithic_file", Required = false, HelpText = "output monolithic json file")]
|
[Option("output_data_json_monolithic_file", Required = false, HelpText = "output monolithic json file")]
|
||||||
public string OutputDataJsonMonolithicFile { get; set; }
|
public string OutputDataJsonMonolithicFile { get; set; }
|
||||||
|
|
||||||
[Option("gen_types", Required = true, HelpText = "code_cs_bin,code_cs_json,code_lua_bin,data_bin,data_lua,data_json,data_json_monolithic . can be multi")]
|
[Option("gen_types", Required = true, HelpText = "code_cs_bin,code_cs_json,code_lua_bin,code_java_bin,code_go_bin,code_go_json,code_cpp_bin,code_python27_json,code_python3_json,code_typescript_bin,code_typescript_json,data_bin,data_lua,data_json,data_json_monolithic . can be multi")]
|
||||||
public string GenType { get; set; }
|
public string GenType { get; set; }
|
||||||
|
|
||||||
[Option('s', "service", Required = true, HelpText = "service")]
|
[Option('s', "service", Required = true, HelpText = "service")]
|
||||||
|
|
@ -75,15 +70,6 @@ namespace Luban.Job.Cfg
|
||||||
|
|
||||||
[Option("branch_input_data_dir", Required = false, HelpText = "branch input data root dir")]
|
[Option("branch_input_data_dir", Required = false, HelpText = "branch input data root dir")]
|
||||||
public string BranchInputDataDir { get; set; }
|
public string BranchInputDataDir { get; set; }
|
||||||
|
|
||||||
[Option("typescript_bright_require_path", Required = false, HelpText = "bright require path in typescript")]
|
|
||||||
public string TypescriptBrightRequirePath { get; set; }
|
|
||||||
|
|
||||||
[Option("use_puerts_bytebuf", Required = false, HelpText = "use puerts bytebuf class. default is false")]
|
|
||||||
public bool UsePuertsByteBuf { get; set; }
|
|
||||||
|
|
||||||
[Option("embed_bright_types", Required = false, HelpText = "use puerts bytebuf class. default is false")]
|
|
||||||
public bool EmbedBrightTypes { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICodeRender CreateCodeRender(string genType)
|
private ICodeRender CreateCodeRender(string genType)
|
||||||
|
|
@ -179,14 +165,8 @@ namespace Luban.Job.Cfg
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!options.UsePuertsByteBuf && string.IsNullOrWhiteSpace(options.TypescriptBrightRequirePath))
|
if (!options.ValidateTypescriptRequire(options.GenType, ref errMsg))
|
||||||
{
|
{
|
||||||
errMsg = $"while use_puerts_bytebuf is false, should provide option --typescript_bright_require_path";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!options.EmbedBrightTypes && string.IsNullOrWhiteSpace(options.TypescriptBrightRequirePath))
|
|
||||||
{
|
|
||||||
errMsg = $"while embed_bright_types is false, should provide option --typescript_bright_require_path";
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
using CommandLine;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Luban.Job.Common
|
||||||
|
{
|
||||||
|
public class GenArgsBase
|
||||||
|
{
|
||||||
|
[Option('d', "define_file", Required = true, HelpText = "define file")]
|
||||||
|
public string DefineFile { get; set; }
|
||||||
|
|
||||||
|
[Option('c', "output_code_dir", Required = false, HelpText = "output code directory")]
|
||||||
|
public string OutputCodeDir { get; set; }
|
||||||
|
|
||||||
|
[Option("typescript_bright_require_path", Required = false, HelpText = "bright require path in typescript")]
|
||||||
|
public string TypescriptBrightRequirePath { get; set; }
|
||||||
|
|
||||||
|
[Option("use_puerts_bytebuf", Required = false, HelpText = "use puerts bytebuf class")]
|
||||||
|
public bool UsePuertsByteBuf { get; set; }
|
||||||
|
|
||||||
|
[Option("embed_bright_types", Required = false, HelpText = "use puerts bytebuf class")]
|
||||||
|
public bool EmbedBrightTypes { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public bool ValidateOutouptCodeDir(ref string errMsg)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(this.OutputCodeDir))
|
||||||
|
{
|
||||||
|
errMsg = "--outputcodedir missing";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool ValidateTypescriptRequire(string genType, ref string errMsg)
|
||||||
|
{
|
||||||
|
if (genType.Contains("typescript"))
|
||||||
|
{
|
||||||
|
if (!this.UsePuertsByteBuf && string.IsNullOrWhiteSpace(this.TypescriptBrightRequirePath))
|
||||||
|
{
|
||||||
|
errMsg = $"while use_puerts_bytebuf is false, should provide option --typescript_bright_require_path";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.EmbedBrightTypes && string.IsNullOrWhiteSpace(this.TypescriptBrightRequirePath))
|
||||||
|
{
|
||||||
|
errMsg = $"while embed_bright_types is false, should provide option --typescript_bright_require_path";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -197,6 +197,8 @@ export {{x.ts_class_modifier}} class {{name}} extends {{if parent_def_type}} {{x
|
||||||
super({{x.table_uid}}, ""{{x.full_name}}"")
|
super({{x.table_uid}}, ""{{x.full_name}}"")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newValue(): {{db_ts_define_type value_ttype}} { return new {{db_ts_define_type value_ttype}}() }
|
||||||
|
|
||||||
serializeKey(buf: ByteBuf, key: {{db_ts_define_type key_ttype}}) {
|
serializeKey(buf: ByteBuf, key: {{db_ts_define_type key_ttype}}) {
|
||||||
throw new Error('Method not implemented.')
|
throw new Error('Method not implemented.')
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,23 +20,14 @@ namespace Luban.Job.Db
|
||||||
{
|
{
|
||||||
public class JobController : IJobController
|
public class JobController : IJobController
|
||||||
{
|
{
|
||||||
class GenArgs
|
class GenArgs : GenArgsBase
|
||||||
{
|
{
|
||||||
[Option('d', "define_file", Required = true, HelpText = "define file")]
|
[Option('g', "gen_type", Required = true, HelpText = "cs,typescript ")]
|
||||||
public string DefineFile { get; set; }
|
|
||||||
|
|
||||||
[Option('c', "output_code_dir", Required = true, HelpText = "output code directory")]
|
|
||||||
public string OutputCodeDir { get; set; }
|
|
||||||
|
|
||||||
[Option('g', "gen_type", Required = true, HelpText = "cs,typescript . current only support cs")]
|
|
||||||
public string GenType { get; set; }
|
public string GenType { get; set; }
|
||||||
|
|
||||||
[Option("typescript_bright_require_path", Required = true, HelpText = "bright require path in typescript")]
|
|
||||||
public string TypescriptBrightRequirePath { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private bool TryParseArg(List<string> args, out GenArgs result, out string errMsg)
|
private bool TryParseArg(List<string> args, out GenArgs options, out string errMsg)
|
||||||
{
|
{
|
||||||
var helpWriter = new StringWriter();
|
var helpWriter = new StringWriter();
|
||||||
var parser = new Parser(ps =>
|
var parser = new Parser(ps =>
|
||||||
|
|
@ -47,12 +38,20 @@ namespace Luban.Job.Db
|
||||||
if (parseResult.Tag == ParserResultType.NotParsed)
|
if (parseResult.Tag == ParserResultType.NotParsed)
|
||||||
{
|
{
|
||||||
errMsg = helpWriter.ToString();
|
errMsg = helpWriter.ToString();
|
||||||
result = null;
|
options = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = (parseResult as Parsed<GenArgs>).Value;
|
options = (parseResult as Parsed<GenArgs>).Value;
|
||||||
errMsg = null;
|
errMsg = null;
|
||||||
|
if (!options.ValidateOutouptCodeDir(ref errMsg))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!options.ValidateTypescriptRequire(options.GenType, ref errMsg))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,7 +145,7 @@ namespace Luban.Job.Db
|
||||||
fileContent.Add($"import {{TxnTable, TxnTableGeneric}} from '{brightRequirePath}/transaction/TxnTable'");
|
fileContent.Add($"import {{TxnTable, TxnTableGeneric}} from '{brightRequirePath}/transaction/TxnTable'");
|
||||||
fileContent.Add($"import TransactionContext from '{brightRequirePath}/transaction/TransactionContext'");
|
fileContent.Add($"import TransactionContext from '{brightRequirePath}/transaction/TransactionContext'");
|
||||||
fileContent.Add($"import {{FieldTag}} from '{brightRequirePath}/serialization/FieldTag'");
|
fileContent.Add($"import {{FieldTag}} from '{brightRequirePath}/serialization/FieldTag'");
|
||||||
fileContent.Add($"import {{TKey}} from '{brightRequirePath}/storage/TKey'");
|
fileContent.Add($"import TKey from '{brightRequirePath}/storage/TKey'");
|
||||||
|
|
||||||
fileContent.Add(@$"export namespace {ass.TopModule} {{");
|
fileContent.Add(@$"export namespace {ass.TopModule} {{");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,32 +23,17 @@ namespace Luban.Job.Proto
|
||||||
{
|
{
|
||||||
private static readonly NLog.Logger s_logger = NLog.LogManager.GetCurrentClassLogger();
|
private static readonly NLog.Logger s_logger = NLog.LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
class GenArgs
|
class GenArgs : GenArgsBase
|
||||||
{
|
{
|
||||||
[Option('d', "define_file", Required = true, HelpText = "define file")]
|
|
||||||
public string DefineFile { get; set; }
|
|
||||||
|
|
||||||
[Option('c', "output_code_dir", Required = true, HelpText = "output code directory")]
|
|
||||||
public string OutputCodeDir { get; set; }
|
|
||||||
|
|
||||||
[Option('g', "gen_type", Required = true, HelpText = "cs,lua,java,cpp,ts")]
|
[Option('g', "gen_type", Required = true, HelpText = "cs,lua,java,cpp,ts")]
|
||||||
public string GenType { get; set; }
|
public string GenType { get; set; }
|
||||||
|
|
||||||
[Option('s', "service", Required = true, HelpText = "service")]
|
[Option('s', "service", Required = true, HelpText = "service")]
|
||||||
public string Service { get; set; }
|
public string Service { get; set; }
|
||||||
|
|
||||||
[Option("typescript_bright_require_path", Required = false, HelpText = "bright require path in typescript")]
|
|
||||||
public string TypescriptBrightRequirePath { get; set; }
|
|
||||||
|
|
||||||
[Option("use_puerts_bytebuf", Required = false, HelpText = "use puerts bytebuf class. default is false")]
|
|
||||||
public bool UsePuertsByteBuf { get; set; }
|
|
||||||
|
|
||||||
[Option("embed_bright_types", Required = false, HelpText = "use puerts bytebuf class. default is false")]
|
|
||||||
public bool EmbedBrightTypes { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private bool TryParseArg(List<string> args, out GenArgs result, out string errMsg)
|
private bool TryParseArg(List<string> args, out GenArgs options, out string errMsg)
|
||||||
{
|
{
|
||||||
var helpWriter = new StringWriter();
|
var helpWriter = new StringWriter();
|
||||||
var parser = new Parser(ps =>
|
var parser = new Parser(ps =>
|
||||||
|
|
@ -59,25 +44,21 @@ namespace Luban.Job.Proto
|
||||||
if (parseResult.Tag == ParserResultType.NotParsed)
|
if (parseResult.Tag == ParserResultType.NotParsed)
|
||||||
{
|
{
|
||||||
errMsg = helpWriter.ToString();
|
errMsg = helpWriter.ToString();
|
||||||
result = null;
|
options = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = (parseResult as Parsed<GenArgs>).Value;
|
options = (parseResult as Parsed<GenArgs>).Value;
|
||||||
errMsg = null;
|
errMsg = null;
|
||||||
|
|
||||||
|
if (!options.ValidateOutouptCodeDir(ref errMsg))
|
||||||
if (!result.UsePuertsByteBuf && string.IsNullOrWhiteSpace(result.TypescriptBrightRequirePath))
|
|
||||||
{
|
{
|
||||||
errMsg = $"while use_puerts_bytebuf is false, should provide option --typescript_bright_require_path";
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!result.EmbedBrightTypes && string.IsNullOrWhiteSpace(result.TypescriptBrightRequirePath))
|
if (!options.ValidateTypescriptRequire(options.GenType, ref errMsg))
|
||||||
{
|
{
|
||||||
errMsg = $"while embed_bright_types is false, should provide option --typescript_bright_require_path";
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue