using HanaToolbox.Cli; using HanaToolbox.Config; using HanaToolbox.Logging; using HanaToolbox.Services; using HanaToolbox.Tui; namespace HanaToolbox.Commands; public static class CronCommand { public static async Task RunAsync(CliArgs cli) { var log = new AppLogger(cli.Verbose); // cron setup → TUI if (cli.SubCommand == "setup") { try { var config = ConfigService.Load(); var tui = new CronSetupTui(); config = tui.Run(config); ConfigService.Save(config); log.Always("Cron settings saved to /etc/hanatoolbox/hanatoolbox.json"); return 0; } catch (Exception ex) { log.Error(ex.Message); return 1; } } // cron → orchestrator (called by system cron every minute) try { var config = ConfigService.Load(); var sid = string.IsNullOrWhiteSpace(cli.Sid) ? config.Hana.Sid : cli.Sid; await ServiceFactory.CreateCronOrchestrator(log).RunAsync(config, sid); return 0; } catch (Exception ex) { log.Error(ex.Message); return 1; } } }