40 lines
1.5 KiB
C#
40 lines
1.5 KiB
C#
using HanaToolbox.Cli;
|
|
using HanaToolbox.Config;
|
|
using HanaToolbox.Logging;
|
|
using HanaToolbox.Services;
|
|
|
|
namespace HanaToolbox.Commands;
|
|
|
|
public static class ImportRenameCommand
|
|
{
|
|
public static async Task<int> RunAsync(CliArgs cli)
|
|
{
|
|
var log = new AppLogger(cli.Verbose);
|
|
var schema = cli.Pos(0);
|
|
var newName = cli.Pos(1);
|
|
var path = cli.Pos(2);
|
|
|
|
if (string.IsNullOrWhiteSpace(schema) || string.IsNullOrWhiteSpace(newName)
|
|
|| string.IsNullOrWhiteSpace(path))
|
|
{
|
|
Console.Error.WriteLine(
|
|
"Usage: hanatoolbox import-rename <schema> <new-schema> <path> [-c] [-t N] [--replace]");
|
|
return 1;
|
|
}
|
|
|
|
try
|
|
{
|
|
var config = ConfigService.Load();
|
|
var sid = string.IsNullOrWhiteSpace(cli.Sid) ? config.Hana.Sid : cli.Sid;
|
|
var svc = ServiceFactory.CreateBackupService(log);
|
|
var locator = ServiceFactory.CreateLocator(log);
|
|
var hdbsql = locator.LocateHdbsql(config.Hana.HdbsqlPath, sid, config.Hana.InstanceNumber);
|
|
var threads = cli.Threads > 0 ? cli.Threads : Math.Max(1, Environment.ProcessorCount / 2);
|
|
await svc.ImportSchemaAsync(hdbsql, config.Backup.UserKey, schema, path,
|
|
threads, cli.Compress, cli.Replace, newName, sid, CancellationToken.None);
|
|
return 0;
|
|
}
|
|
catch (Exception ex) { log.Error(ex.Message); return 1; }
|
|
}
|
|
}
|