From: Cheng-Ling Lai Date: Tue, 9 Dec 2025 06:08:31 +0000 (+0800) Subject: Added shell1 argument to shellify_pipe X-Git-Tag: v0.13.1~62^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=92ce3bbab89b7034892e1df3097c9e977715bebe;p=thirdparty%2Fsnapper.git Added shell1 argument to shellify_pipe --- diff --git a/client/snbk/Shell.cc b/client/snbk/Shell.cc index d9bfb954..319eb059 100644 --- a/client/snbk/Shell.cc +++ b/client/snbk/Shell.cc @@ -81,29 +81,28 @@ namespace snapper __builtin_unreachable(); } - - SystemCmd::Args - shellify_pipe(const SystemCmd::Args& args1, const Shell& shell2, const SystemCmd::Args& args2) + string _wrap_shell_args(const Shell& shell, const SystemCmd::Args& args) { - string tmp1 = quote(args1); - string tmp2 = quote(args2); - - switch (shell2.mode) + string tmp = quote(args); + switch (shell.mode) { case Shell::Mode::DIRECT: - { - return SystemCmd::Args { SH_BIN, "-c", tmp1 + " | " + tmp2 }; - } + return tmp; case Shell::Mode::SSH: - { - return SystemCmd::Args { SH_BIN, "-c", tmp1 + " | " + SSH_BIN " " + - quote(shell2.ssh_options) + " " + quote(tmp2) }; - } + return SSH_BIN " " + quote(shell.ssh_options) + " " + quote(tmp); } SN_THROW(Exception("invalid shell mode")); __builtin_unreachable(); } + SystemCmd::Args + shellify_pipe(const Shell& shell1, const SystemCmd::Args& args1, + const Shell& shell2, const SystemCmd::Args& args2) + { + return { SH_BIN, "-c", _wrap_shell_args(shell1, args1) + " | " + + _wrap_shell_args(shell2, args2) }; + } + } diff --git a/client/snbk/Shell.h b/client/snbk/Shell.h index d16b6256..5fbc84f2 100644 --- a/client/snbk/Shell.h +++ b/client/snbk/Shell.h @@ -54,7 +54,8 @@ namespace snapper SystemCmd::Args - shellify_pipe(const SystemCmd::Args& args1, const Shell& shell2, const SystemCmd::Args& args2); + shellify_pipe(const Shell& shell1, const SystemCmd::Args& args1, + const Shell& shell2, const SystemCmd::Args& args2); } diff --git a/client/snbk/TheBigThing.cc b/client/snbk/TheBigThing.cc index 398ece69..413aedc6 100644 --- a/client/snbk/TheBigThing.cc +++ b/client/snbk/TheBigThing.cc @@ -163,7 +163,8 @@ namespace snapper y2deb("source: " << cmd3a_args.get_values()); y2deb("target: " << cmd3b_args.get_values()); - SystemCmd cmd3(shellify_pipe(cmd3a_args, backup_config.get_target_shell(), cmd3b_args)); + SystemCmd cmd3(shellify_pipe(backup_config.get_source_shell(), cmd3a_args, + backup_config.get_target_shell(), cmd3b_args)); if (cmd3.retcode() != 0) { y2err("command '" << cmd3.cmd() << "' failed: " << cmd3.retcode());