コード例 #1
0
ファイル: NewCommand.cs プロジェクト: genyman/core
        protected override int Execute()
        {
            var baseResult = base.Execute();

            if (baseResult != 0)
            {
                return(baseResult);
            }

            var metadata = new GenymanMetadata();
            var version  = GetVersion();

            Log.Information($"Executing new command for {metadata.PackageId} - Version {version}");

            var sw = Stopwatch.StartNew();

            var configuration = new GenymanConfiguration <TConfiguration>
            {
                Genyman       = metadata,
                Configuration = new TTemplate(),
            };

            var output    = "";
            var extension = "json";

            if (JsonOption.HasValue())
            {
                output    = configuration.ToJsonString();
                extension = "json";
            }
            else             //Later support more formats!
            {
                // DEFAULT is json
                output    = configuration.ToJsonString();
                extension = "json";
            }

            var fileName = !string.IsNullOrEmpty(FileNameOption.Value()) ? FileNameOption.ParsedValue : $"gm-{metadata.Identifier.ToLower()}";

            fileName = $"{fileName}.{extension}";

            var fullFileName = Path.Combine(Environment.CurrentDirectory, fileName);

            if (File.Exists(fileName) && !Overwrite.HasValue())
            {
                Log.Error($"File {fullFileName} already exists. Specify --overwrite if you want to overwrite files");
                return(-1);
            }

            File.WriteAllText(fullFileName, output);
            Log.Information($"Configuration file {fileName} was written");

            Log.Information($"Finished ({sw.ElapsedMilliseconds}ms)");

            return(0);
        }