summaryrefslogtreecommitdiff
path: root/functions
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-12-17 13:13:25 -0600
committerJohn Estabrook <jestabro@vyos.io>2025-12-19 08:06:54 -0600
commit573cc710c340eb48bf1db7af6caccde1b1f5ca31 (patch)
treef6e508c136eb1d5a7fbbd94e8d88205e82af0998 /functions
parent7c0b17cf52153edfa6b2e36be4cd50829e30d197 (diff)
downloadvyatta-cfg-573cc710c340eb48bf1db7af6caccde1b1f5ca31.tar.gz
vyatta-cfg-573cc710c340eb48bf1db7af6caccde1b1f5ca31.zip
T8061: use vyconf compatible calls for completion data
Use alternatives for validateTmplPath, getNodeType, getCompletionEnv.
Diffstat (limited to 'functions')
-rw-r--r--functions/interpreter/vyatta-cfg-run118
1 files changed, 84 insertions, 34 deletions
diff --git a/functions/interpreter/vyatta-cfg-run b/functions/interpreter/vyatta-cfg-run
index 605559c..5583d02 100644
--- a/functions/interpreter/vyatta-cfg-run
+++ b/functions/interpreter/vyatta-cfg-run
@@ -475,39 +475,70 @@ vyatta_cfg_validate_cmd ()
local path=''
local opath=''
for arg in "${expanded_api_args[@]:1}"; do
- if [[ "$path" == '' ]]; then
+ if [[ "$path" == '' ]]; then
path="$arg"
else
path="$path $arg"
- fi
- if ! cli-shell-api validateTmplPath -- ${editlvl} ${path}; then
- _cli_shell_api_comp_values=()
- vyatta_cli_shell_api getCompletionEnv $cmd ${path}
- if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
- && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
- local -a _get_help_text_items=( "${_cli_shell_api_hitems[@]}" )
- local -a _get_help_text_helps=( "${_cli_shell_api_hstrs[@]}" )
- local vyatta_help_text=''
- if [[ $opath == '' ]]; then
- echo -ne "\n Configuration path: [$arg] is ambiguous\n" >&2
+ fi
+ if test -f "/var/run/vyconf_backend"; then
+ if ! ${vyconf_bin_dir}/vyconf_cli_compat validateTmplPath ${editlvl} ${path}; then
+ _cli_shell_api_comp_values=()
+ vyos_cli_shell_api getCompletionEnv $cmd ${path}
+ if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
+ && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
+ local -a _get_help_text_items=( "${_cli_shell_api_hitems[@]}" )
+ local -a _get_help_text_helps=( "${_cli_shell_api_hstrs[@]}" )
+ local vyatta_help_text=''
+ if [[ $opath == '' ]]; then
+ echo -ne "\n Configuration path: [$arg] is ambiguous\n" >&2
+ else
+ echo -ne "\n Configuration path: $opath [$arg] is ambiguous\n" >&2
+ fi
+ get_help_text
+ echo -e "$vyatta_help_text\n" | sed 's/^P/ P/'
+ echo -e " ${cmd^} failed\n"
+ break
else
- echo -ne "\n Configuration path: $opath [$arg] is ambiguous\n" >&2
+ if [[ $opath == '' ]]; then
+ echo -ne "\n Configuration path: [$arg] is not valid\n ${cmd^} failed\n\n" >&2
+ else
+ echo -ne "\n Configuration path: $opath [$arg] is not valid\n ${cmd^} failed\n\n" >&2
+ fi
+ break
fi
- get_help_text
- echo -e "$vyatta_help_text\n" | sed 's/^P/ P/'
- echo -e " ${cmd^} failed\n"
- break
else
- if [[ $opath == '' ]]; then
- echo -ne "\n Configuration path: [$arg] is not valid\n ${cmd^} failed\n\n" >&2
+ opath=$path
+ fi
+ else
+ if ! cli-shell-api validateTmplPath -- ${editlvl} ${path}; then
+ _cli_shell_api_comp_values=()
+ vyatta_cli_shell_api getCompletionEnv $cmd ${path}
+ if [[ "${#_cli_shell_api_comp_values[@]}" != "1"
+ && "${#_cli_shell_api_comp_values[@]}" != "0" ]]; then
+ local -a _get_help_text_items=( "${_cli_shell_api_hitems[@]}" )
+ local -a _get_help_text_helps=( "${_cli_shell_api_hstrs[@]}" )
+ local vyatta_help_text=''
+ if [[ $opath == '' ]]; then
+ echo -ne "\n Configuration path: [$arg] is ambiguous\n" >&2
+ else
+ echo -ne "\n Configuration path: $opath [$arg] is ambiguous\n" >&2
+ fi
+ get_help_text
+ echo -e "$vyatta_help_text\n" | sed 's/^P/ P/'
+ echo -e " ${cmd^} failed\n"
+ break
else
- echo -ne "\n Configuration path: $opath [$arg] is not valid\n ${cmd^} failed\n\n" >&2
+ if [[ $opath == '' ]]; then
+ echo -ne "\n Configuration path: [$arg] is not valid\n ${cmd^} failed\n\n" >&2
+ else
+ echo -ne "\n Configuration path: $opath [$arg] is not valid\n ${cmd^} failed\n\n" >&2
+ fi
+ break
fi
- break
+ else
+ opath=$path
fi
- else
- opath=$path
- fi
+ fi
done
}
@@ -604,21 +635,40 @@ vyatta_cfg_cmd ()
local editlvl=$(cli-shell-api getEditLevelStr)
fi
vyatta_config_expand_compwords "${args[@]}"
- if [[ "${expanded_api_args[@]:$[${#expanded_api_args[@]}-1]}" == "-all" ]] &&
- [[ "${expanded_api_args[0]}" == "show" ]]; then
- if [[ $[${#expanded_api_args[@]}-2] -eq 0 ]]; then
- vyatta_cfg_cmd_run "${expanded_api_args[@]}"
- elif cli-shell-api validateTmplPath -- ${editlvl[*]} \
- "${expanded_api_args[@]:1:$[${#expanded_api_args[@]}-2]}"; then
+ if test -f "/var/run/vyconf_backend"; then
+ if [[ "${expanded_api_args[@]:$[${#expanded_api_args[@]}-1]}" == "-all" ]] &&
+ [[ "${expanded_api_args[0]}" == "show" ]]; then
+ if [[ $[${#expanded_api_args[@]}-2] -eq 0 ]]; then
+ vyatta_cfg_cmd_run "${expanded_api_args[@]}"
+ elif ${vyconf_bin_dir}/vyconf_cli_compat validateTmplPath ${editlvl[*]} \
+ "${expanded_api_args[@]:1:$[${#expanded_api_args[@]}-2]}"; then
+ vyatta_cfg_cmd_run "${expanded_api_args[@]}"
+ else
+ vyatta_cfg_validate_cmd "${expanded_api_args[@]}"
+ fi
+ elif ${vyconf_bin_dir}/vyconf_cli_compat validateTmplPath ${editlvl[*]} "${expanded_api_args[@]:1}"; then
vyatta_cfg_cmd_run "${expanded_api_args[@]}"
else
+ # find broken portion of command
vyatta_cfg_validate_cmd "${expanded_api_args[@]}"
fi
- elif cli-shell-api validateTmplPath -- ${editlvl[*]} "${expanded_api_args[@]:1}"; then
- vyatta_cfg_cmd_run "${expanded_api_args[@]}"
else
- # find broken portion of command
- vyatta_cfg_validate_cmd "${expanded_api_args[@]}"
+ if [[ "${expanded_api_args[@]:$[${#expanded_api_args[@]}-1]}" == "-all" ]] &&
+ [[ "${expanded_api_args[0]}" == "show" ]]; then
+ if [[ $[${#expanded_api_args[@]}-2] -eq 0 ]]; then
+ vyatta_cfg_cmd_run "${expanded_api_args[@]}"
+ elif cli-shell-api validateTmplPath -- ${editlvl[*]} \
+ "${expanded_api_args[@]:1:$[${#expanded_api_args[@]}-2]}"; then
+ vyatta_cfg_cmd_run "${expanded_api_args[@]}"
+ else
+ vyatta_cfg_validate_cmd "${expanded_api_args[@]}"
+ fi
+ elif cli-shell-api validateTmplPath -- ${editlvl[*]} "${expanded_api_args[@]:1}"; then
+ vyatta_cfg_cmd_run "${expanded_api_args[@]}"
+ else
+ # find broken portion of command
+ vyatta_cfg_validate_cmd "${expanded_api_args[@]}"
+ fi
fi
}
### Top level wrappers ###