41 lines
1.2 KiB
C#
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; }
|
|
}
|
|
}
|