Files
HanaToolbox/Commands/CronCommand.cs
2026-03-02 20:53:28 +01:00

41 lines
1.2 KiB
C#

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<int> 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; }
}
}