Esempio n. 1
0
 private static int Main(string[] args)
 {
     Console.WriteLine(ProgramInfo.Greeting);
     if (args.NeedsHelp())
     {
         PrintUsage();
         return(ErrorCodes.MissingUserInput);
     }
     try
     {
         var arguments = args.To <MergeArgs>();
         Logger.Level = arguments.L;
         var source  = RecipeSource.FromFileOrInput(arguments.Recipe);
         var recipe  = new RecipeParser(source).Recipe;
         var options = TransformOptionsProvider.GetTransformOptions();
         recipe.Compile()(new ConfigTransformer(source.BasePath, options));
         return(ErrorCodes.Ok);
     }
     catch (RecipeCompilerException ex)
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine(ex.Message);
         Console.ResetColor();
         return(ErrorCodes.RecipeError);
     }
     catch (Exception ex)
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine($"{ProgramInfo.Name}: error: {ex.Message}");
         Console.WriteLine(ex.StackTrace);
         Console.ResetColor();
         return(ErrorCodes.Unhandled);
     }
 }
Esempio n. 2
0
        public static void Merge(string recipe, LogLevel logLevel = LogLevel.Normal)
        {
            Logger.Level = logLevel;
            var source        = RecipeSource.FromFileOrInput(recipe);
            var recipeExpress = new RecipeParser(source).Recipe;
            var options       = TransformOptionsProvider.GetTransformOptions();

            recipeExpress.Compile()(new ConfigTransformer(source.BasePath, options));
        }
Esempio n. 3
0
    private static string GetRecipeHtml(RecipeSource recipe)
    {
        StringBuilder sb = new();

        sb.AppendLine($"<h3 class='mt-5' id='{GetAnchor(recipe)}'>{recipe.Title}</h3>");
        sb.AppendLine($"<div>{recipe.Description}</div>");
        sb.AppendLine($"<pre class='bg-light border rounded p-3'>{recipe.Code}</pre>");
        sb.AppendLine($"<img src='../../images/{recipe.ID.ToLower()}.png' " +
                      "class='d-block mx-auto my-5 border shadow-sm' style='max-width: 100%;'/>");
        return(sb.ToString());
    }
Esempio n. 4
0
    private static string GetRecipeMarkdown(RecipeSource recipe)
    {
        StringBuilder sb = new();

        sb.AppendLine($"## {recipe.Title}");
        sb.AppendLine("");
        sb.AppendLine(recipe.Description);
        sb.AppendLine("");
        sb.AppendLine("```cs");
        sb.AppendLine(recipe.Code);
        sb.AppendLine("```");
        sb.AppendLine("");
        sb.AppendLine($"<img src='../../images/{recipe.ID.ToLower()}.png' class='d-block mx-auto my-5' />");
        sb.AppendLine("");
        return(sb.ToString());
    }
Esempio n. 5
0
 static string GetAnchor(RecipeSource x) => GetAnchor(x.Title);