From d5f883baca8518a141699eed106a9e7d3a5875e5 Mon Sep 17 00:00:00 2001 From: mdnapo Date: Mon, 6 May 2024 08:40:46 +0200 Subject: [PATCH] Intermediate commit --- MycroForge.CLI/Commands/MycroForge.Api.Run.cs | 5 +++-- MycroForge.CLI/Commands/MycroForge.Uninstall.cs | 10 +++++++--- MycroForge.CLI/ProjectContext.cs | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/MycroForge.CLI/Commands/MycroForge.Api.Run.cs b/MycroForge.CLI/Commands/MycroForge.Api.Run.cs index 0e2af61..f1d86bb 100644 --- a/MycroForge.CLI/Commands/MycroForge.Api.Run.cs +++ b/MycroForge.CLI/Commands/MycroForge.Api.Run.cs @@ -10,7 +10,7 @@ public partial class MycroForge public class Run : Command, ISubCommandOf { private readonly ProjectContext _context; - + public Run(ProjectContext context) : base("run", "Run your app") { _context = context; @@ -19,9 +19,10 @@ public partial class MycroForge private async Task ExecuteAsync() { + var config = await _context.LoadConfig(); await _context.Bash([ "source .venv/bin/activate", - "uvicorn main:app --reload" + $"uvicorn main:app --port {config.Api.Port} --reload" ]); } } diff --git a/MycroForge.CLI/Commands/MycroForge.Uninstall.cs b/MycroForge.CLI/Commands/MycroForge.Uninstall.cs index a7b19c2..6624f35 100644 --- a/MycroForge.CLI/Commands/MycroForge.Uninstall.cs +++ b/MycroForge.CLI/Commands/MycroForge.Uninstall.cs @@ -10,6 +10,9 @@ public partial class MycroForge private static readonly Argument> PackagesArgument = new(name: "packages", description: "The names of the packages to uninstall"); + private static readonly Option YesOption = + new(aliases: ["-y", "--yes"], description: "Don’t ask for confirmation of uninstall deletions"); + private readonly ProjectContext _context; public Uninstall(ProjectContext context) : base("uninstall", "Uninstall packages and update the requirements.txt") @@ -17,14 +20,15 @@ public partial class MycroForge _context = context; AddAlias("u"); AddArgument(PackagesArgument); - this.SetHandler(ExecuteAsync, PackagesArgument); + AddOption(YesOption); + this.SetHandler(ExecuteAsync, PackagesArgument, YesOption); } - private async Task ExecuteAsync(IEnumerable packages) + private async Task ExecuteAsync(IEnumerable packages, bool yes) { await _context.Bash( "source .venv/bin/activate", - $"pip uninstall {string.Join(' ', packages)}", + $"pip uninstall{(yes ? " --yes " : " ")}{string.Join(' ', packages)}", "pip freeze > requirements.txt" ); } diff --git a/MycroForge.CLI/ProjectContext.cs b/MycroForge.CLI/ProjectContext.cs index 9e40d30..c58f591 100644 --- a/MycroForge.CLI/ProjectContext.cs +++ b/MycroForge.CLI/ProjectContext.cs @@ -36,10 +36,10 @@ public class ProjectContext { var fullPath = Path.Combine(RootDirectory, path); - if (Directory.Exists(fullPath)) + if (!Directory.Exists(fullPath)) { throw new(string.Join('\n', - $"{path} does not exist, make sure your in the correct directory." + $"{fullPath} does not exist, make sure you're in the correct directory." )); } }