summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2026-03-05 09:55:02 +0000
committerGitHub <noreply@github.com>2026-03-05 09:55:02 +0000
commitb385ca83c4bb363bdcbe9d069ccab47b95ceecb1 (patch)
tree39b1d80b849dd9ad80f99a48a4c769defa4a9640
parent33fe714a2d2f258e6ded90ed27b4cc295e319a36 (diff)
parent6df6a4ba292df382374cd5d22563370a8d2a2e37 (diff)
downloadvyatta-cfg-b385ca83c4bb363bdcbe9d069ccab47b95ceecb1.tar.gz
vyatta-cfg-b385ca83c4bb363bdcbe9d069ccab47b95ceecb1.zip
Merge pull request #125 from jestabro/copy-rename-requests
T8313: make copy/rename vyconf aware
-rw-r--r--functions/interpreter/vyatta-cfg-run97
1 files changed, 69 insertions, 28 deletions
diff --git a/functions/interpreter/vyatta-cfg-run b/functions/interpreter/vyatta-cfg-run
index 5583d02..f751718 100644
--- a/functions/interpreter/vyatta-cfg-run
+++ b/functions/interpreter/vyatta-cfg-run
@@ -552,45 +552,86 @@ vyatta_config_copy ()
local -a args=( "$@" )
local -a param1=( "$cmd" ${args[@]:1:2} )
local -a param2=( "$cmd" ${args[@]:4:5} )
- local editlvl=$(cli-shell-api getEditLevelStr)
+ if test -f "/var/run/vyconf_backend"; then
+ local editlvl=$(${vyconf_bin_dir}/vyconf_cli_compat getEditLevelStr)
+ else
+ local editlvl=$(cli-shell-api getEditLevelStr)
+ fi
expanded_api_args=( )
vyatta_config_expand_compwords "${param1[@]}"
param1=( "${expanded_api_args[@]}" )
expanded_api_args=( )
vyatta_config_expand_compwords "${param2[@]}"
param2=( "${expanded_api_args[@]}" )
- if [[ "${args[3]}" != "to" ]]; then
- echo -ne "\n Invalid command: $cmd ${param1[@]:1} ${args[3]} ${param2[@]:1}\n\n" >&2
- elif cli-shell-api validateTmplPath -- ${editlvl[*]} "${param1[@]:1}" &&
- cli-shell-api validateTmplPath -- ${editlvl[*]} "${param2[@]:1}" ; then
- cmd="/opt/vyatta/sbin/my_$cmd"
- output=$(eval "$cmd ${param1[@]:1} to ${param2[@]:1} | sed -e 's/^/ /'")
- if [[ ! -z "${output}" ]];then
- echo -ne "\n${output}\n\n"
+ if test -f "/var/run/vyconf_backend"; then
+ if [[ "${args[3]}" != "to" ]]; then
+ echo -ne "\n Invalid command: $cmd ${param1[@]:1} ${args[3]} ${param2[@]:1}\n\n" >&2
+ elif ${vyconf_bin_dir}/vyconf_cli_compat validateTmplPath ${editlvl[*]} "${param1[@]:1}" &&
+ ${vyconf_bin_dir}/vyconf_cli_compat validateTmplPath ${editlvl[*]} "${param2[@]:1}" ; then
+ cmd="${vyconf_bin_dir}/vy_$cmd"
+ output=$(eval "$cmd ${param1[@]:1} to ${param2[@]:1} | sed -e 's/^/ /'")
+ if [[ ! -z "${output}" ]];then
+ echo -ne "\n${output}\n\n"
+ fi
+ else
+ if ! ${vyconf_bin_dir}/vyconf_cli_compat validateTmplPath ${editlvl[*]} "${param1[@]:1}"; then
+ _cli_shell_api_comp_values=()
+ vyos_cli_shell_api getCompletionEnv $cmd ${param1[1]}
+ if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
+ && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
+ echo -ne "\n Ambiguous command: $cmd [${param1[1]}]\n" >&2
+ echo -ne "\n Possible completions: ${_cli_shell_api_comp_values[@]}\n\n" >&2
+ else
+ echo -ne "\n Invalid command: $cmd [${param1[1]}]\n\n" >&2
+ fi
+ elif ! ${vyconf_bin_dir}/vyconf_cli_compat validateTmplPath ${editlvl[*]} "${param1[@]:2}"; then
+ _cli_shell_api_comp_values=()
+ vyos_cli_shell_api getCompletionEnv $cmd "${param2[1]}"
+ if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
+ && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
+ echo -ne "\n Ambiguous command: $cmd ${param2[@]:1} to [${param2[1]}]\n" >&2
+ echo -ne "\n Possible completions: ${_cli_shell_api_comp_values[@]}\n\n" >&2
+ else
+ echo -ne "\n Invalid command: $cmd ${param1[@]:1} to [${param2[1]}]\n\n" >&2
+ fi
+ else
+ echo -ne "\n Invalid command: $cmd ${param1[@]:1} to ${param2[@]:1}\n\n" >&2
+ fi
fi
else
- if ! cli-shell-api validateTmplPath -- ${editlvl[*]} "${param1[@]:1}"; then
- _cli_shell_api_comp_values=()
- vyatta_cli_shell_api getCompletionEnv $cmd ${param1[1]}
- if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
- && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
- echo -ne "\n Ambiguous command: $cmd [${param1[1]}]\n" >&2
- echo -ne "\n Possible completions: ${_cli_shell_api_comp_values[@]}\n\n" >&2
- else
- echo -ne "\n Invalid command: $cmd [${param1[1]}]\n\n" >&2
+ if [[ "${args[3]}" != "to" ]]; then
+ echo -ne "\n Invalid command: $cmd ${param1[@]:1} ${args[3]} ${param2[@]:1}\n\n" >&2
+ elif cli-shell-api validateTmplPath -- ${editlvl[*]} "${param1[@]:1}" &&
+ cli-shell-api validateTmplPath -- ${editlvl[*]} "${param2[@]:1}" ; then
+ cmd="/opt/vyatta/sbin/my_$cmd"
+ output=$(eval "$cmd ${param1[@]:1} to ${param2[@]:1} | sed -e 's/^/ /'")
+ if [[ ! -z "${output}" ]];then
+ echo -ne "\n${output}\n\n"
fi
- elif ! cli-shell-api validateTmplPath -- ${editlvl[*]} "${param1[@]:2}"; then
- _cli_shell_api_comp_values=()
- vyatta_cli_shell_api getCompletionEnv $cmd "${param2[1]}"
- if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
- && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
- echo -ne "\n Ambiguous command: $cmd ${param2[@]:1} to [${param2[1]}]\n" >&2
- echo -ne "\n Possible completions: ${_cli_shell_api_comp_values[@]}\n\n" >&2
+ else
+ if ! cli-shell-api validateTmplPath -- ${editlvl[*]} "${param1[@]:1}"; then
+ _cli_shell_api_comp_values=()
+ vyatta_cli_shell_api getCompletionEnv $cmd ${param1[1]}
+ if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
+ && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
+ echo -ne "\n Ambiguous command: $cmd [${param1[1]}]\n" >&2
+ echo -ne "\n Possible completions: ${_cli_shell_api_comp_values[@]}\n\n" >&2
+ else
+ echo -ne "\n Invalid command: $cmd [${param1[1]}]\n\n" >&2
+ fi
+ elif ! cli-shell-api validateTmplPath -- ${editlvl[*]} "${param1[@]:2}"; then
+ _cli_shell_api_comp_values=()
+ vyatta_cli_shell_api getCompletionEnv $cmd "${param2[1]}"
+ if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
+ && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
+ echo -ne "\n Ambiguous command: $cmd ${param2[@]:1} to [${param2[1]}]\n" >&2
+ echo -ne "\n Possible completions: ${_cli_shell_api_comp_values[@]}\n\n" >&2
+ else
+ echo -ne "\n Invalid command: $cmd ${param1[@]:1} to [${param2[1]}]\n\n" >&2
+ fi
else
- echo -ne "\n Invalid command: $cmd ${param1[@]:1} to [${param2[1]}]\n\n" >&2
+ echo -ne "\n Invalid command: $cmd ${param1[@]:1} to ${param2[@]:1}\n\n" >&2
fi
- else
- echo -ne "\n Invalid command: $cmd ${param1[@]:1} to ${param2[@]:1}\n\n" >&2
fi
fi
}