summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2024-05-28 11:56:05 -0500
committerGitHub <noreply@github.com>2024-05-28 11:56:05 -0500
commitb6486fae7759e563c0ae292d2e501ae10f46609a (patch)
treefe1f7829fa64352d64379c8716e415dbbb44546d
parentecc7310a9642618c67acf5551eb6aef740313571 (diff)
parent694e122775613d13b42db9d02ae7bb1a1853c3f5 (diff)
downloadvyatta-cfg-b6486fae7759e563c0ae292d2e501ae10f46609a.tar.gz
vyatta-cfg-b6486fae7759e563c0ae292d2e501ae10f46609a.zip
Merge pull request #79 from dmbaturin/rollback-soft-help
cli: T6383: improve completion help for rollback commands
-rw-r--r--etc/bash_completion.d/vyatta-cfg35
-rw-r--r--functions/interpreter/vyatta-cfg-run2
2 files changed, 35 insertions, 2 deletions
diff --git a/etc/bash_completion.d/vyatta-cfg b/etc/bash_completion.d/vyatta-cfg
index c2d3a42..6274e1c 100644
--- a/etc/bash_completion.d/vyatta-cfg
+++ b/etc/bash_completion.d/vyatta-cfg
@@ -253,7 +253,40 @@ vyatta_rollback_complete ()
if [ $COMP_CWORD -eq 1 -a -z "${COMP_WORDS[1]}" ]; then
echo
echo "Possible completions:"
- echo -e " <N>\tRollback to revision N (currently requires reboot)"
+ echo -e " <N>\tRollback to revision N (requires reboot)"
+ echo -e " \t(use rollback-soft for a non-disruptive rollback)
+ echo -e "\n Revisions:"
+ print_commit_log
+ COMPREPLY=( "" " " )
+ else
+ echo -en "\nPossible completions:\n"
+ echo -en " <Enter>\tExecute the current command"
+ COMPREPLY=( "" " " )
+ fi
+
+ eval $restore_shopts
+}
+
+vyatta_rollback-soft_complete ()
+{
+ # Generate completion help for the "rollback-soft" command
+
+ local restore_shopts=$( shopt -p extglob nullglob | tr \\n \; )
+ shopt -s extglob nullglob
+
+ if [[ $COMP_CWORD -eq 0 ]];then
+ vyatta_config_complete "$@"
+ eval $restore_shopts
+ return
+ fi
+
+ # Only provide completions after command name has been typed, but
+ # before any characters of the command argument have been entered.
+ if [ $COMP_CWORD -eq 1 -a -z "${COMP_WORDS[1]}" ]; then
+ echo
+ echo "Possible completions:"
+ echo -e " <N>\tRollback to revision N"
+ echo -e " \t(applies a diff that you can compare and commit)"
echo -e "\n Revisions:"
print_commit_log
COMPREPLY=( "" " " )
diff --git a/functions/interpreter/vyatta-cfg-run b/functions/interpreter/vyatta-cfg-run
index a13c62d..d1dbd51 100644
--- a/functions/interpreter/vyatta-cfg-run
+++ b/functions/interpreter/vyatta-cfg-run
@@ -627,7 +627,7 @@ _vyatta_cfg_init ()
rollback)
complete -F vyatta_rollback_complete ${cmd:0:$pos} ;;
rollback-soft)
- complete -F vyatta_rollback_complete ${cmd:0:$pos} ;;
+ complete -F vyatta_rollback-soft_complete ${cmd:0:$pos} ;;
commit|commit-confirm)
complete -F vyatta_commit_complete ${cmd:0:$pos} ;;
*)