using HanaToolbox.Cli; using HanaToolbox.Commands; var cli = CliArgs.Parse(args); return cli.Command switch { "backup" => await BackupCommand.RunAsync(cli), "export" => await ExportCommand.RunAsync(cli), "import" => await ImportCommand.RunAsync(cli), "import-rename" => await ImportRenameCommand.RunAsync(cli), "aurora" => await AuroraCommand.RunAsync(cli), "clean" => await CleanCommand.RunAsync(cli), "monitor" => await MonitorCommand.RunAsync(cli), "firewall" => await FirewallCommand.RunAsync(cli), "keymanager" => await KeyManagerCommand.RunAsync(cli), "cron" => await CronCommand.RunAsync(cli), "onboard" => await OnboardCommand.RunAsync(cli), "" => Help(), _ => UnknownCommand(cli.Command), }; static int Help() { Console.WriteLine(""" HanaToolbox — SAP HANA & Business One management toolkit Usage: hanatoolbox [options] Commands: backup Run a HANA tenant/schema backup manually export Export a schema: export [-c] [-t N] import Import a schema: import [-c] [-t N] [--replace] import-rename Import & rename: import-rename [-c] [-t N] [--replace] aurora Run an Aurora schema refresh manually clean Delete old backup/log files per retention policy monitor Run a HANA monitoring check manually firewall Open the interactive Firewall TUI keymanager Open the interactive Key Manager TUI cron Run scheduled tasks (called by system cron every minute) cron setup Configure cron task schedules and settings (TUI) onboard Run the initial setup wizard Global options: -v, --verbose Enable verbose output --sid Override HANA SID from config (default: from hanatoolbox.json) """); return 0; } static int UnknownCommand(string cmd) { Console.Error.WriteLine($"hanatoolbox: unknown command '{cmd}'"); Console.Error.WriteLine("Run 'hanatoolbox' for usage."); return 1; }