mycroforge/MycroForge.CLI/Program.cs

53 lines
1.3 KiB
C#

using System.CommandLine;
using MycroForge.CLI;
using MycroForge.CLI.Extensions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using var host = Host
.CreateDefaultBuilder()
.ConfigureServices((_, services) =>
{
services
.AddServices(args)
.AddCommands();
})
.Build();
try
{
var ctx = host.Services.GetRequiredService<ProjectContext>();
await ctx.LoadConfig();
await host.Services.GetRequiredService<MycroForge.CLI.Commands.MycroForge>().InvokeAsync(args);
await ctx.SaveConfig();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
// using MycroForge.CLI.CodeGen;
// using MycroForge.Parsing;
//
// var src = new Tester().Rewrite();
// Console.WriteLine(src);
//
// class Tester : PythonSourceModifier
// {
// public Tester() : base(File.ReadAllText("scripts/user.py"))
// {
//
// }
//
// public override object? VisitAssignment(PythonParser.AssignmentContext context)
// {
// Console.WriteLine(GetOriginalText(context));
// return base.VisitAssignment(context);
// }
// }
// using MycroForge.CLI.CodeGen;
// var src = new EntityModifier(await File.ReadAllTextAsync("scripts/user.py")).Rewrite();
// Console.WriteLine(src);