using HanaToolbox.Cli; using HanaToolbox.Config; using HanaToolbox.Logging; using HanaToolbox.Services; using HanaToolbox.Tui; namespace HanaToolbox.Commands; public static class OnboardCommand { public static async Task RunAsync(CliArgs cli) { var log = new AppLogger(cli.Verbose); try { var runner = ServiceFactory.CreateRunner(log); var switcher = new SuUserSwitcher(runner); var locator = new HdbClientLocator(runner); var keySvc = new KeyManagerService(switcher, locator, log); var keyTui = new KeyManagerTui(keySvc, locator, log); var fwSvc = new FirewallService(runner, log); var fwTui = new FirewallTui(fwSvc, log); var cronTui = new CronSetupTui(); var tui = new OnboardTui(keyTui, cronTui, fwTui, log); await tui.RunAsync(); return 0; } catch (Exception ex) { log.Error(ex.Message); return 1; } } }