using NozCli.Repl; using Spectre.Console; namespace NozCli.Commands; public class RmCommand : ICommand { public string Name => "rm"; public string Description => "Delete a note from the server"; public string Usage => "rm "; public async Task ExecuteAsync(string[] args, ReplContext ctx, CancellationToken ct = default) { var slug = args.FirstOrDefault(); if (slug is null) { AnsiConsole.MarkupLine("[red]Usage: rm [/]"); return; } slug = ctx.ResolveSlug(slug); if (!AnsiConsole.Confirm($"[red]Delete[/] {slug} from server?", defaultValue: false)) return; await AnsiConsole.Status().StartAsync("Deleting…", async _ => await ctx.Api.DeleteNoteAsync(slug, ct)); ctx.NoteCache.RemoveAll(n => n.Slug == slug); AnsiConsole.MarkupLine($"[green]✓[/] {slug} deleted"); } }