summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rw-r--r--etc/bash_completion.d/vyatta-op48
-rw-r--r--etc/default/vyatta.in35
2 files changed, 79 insertions, 4 deletions
diff --git a/etc/bash_completion.d/vyatta-op b/etc/bash_completion.d/vyatta-op
index c820305..d917806 100644
--- a/etc/bash_completion.d/vyatta-op
+++ b/etc/bash_completion.d/vyatta-op
@@ -104,14 +104,14 @@ _vyatta_op_default_expand ()
local wc=${#COMP_WORDS[@]}
if [[ "${COMP_WORDS[0]}" =~ "/" ]]; then
# if we are looking for a directory on the first completion then do directory completions
- _filedir_xspec
+ _filedir_xspec_vyos
elif (( wc < 2 )) ||
[[ $COMP_CWORD -eq 0 ]] ||
[[ $1 == $2 ]]; then
_vyatta_op_expand "$@"
else
# after the first word => cannot be vyatta command so use original default
- _filedir_xspec
+ _filedir_xspec_vyos
fi
}
@@ -500,7 +500,7 @@ strip-private ()
commands ()
{
if [ "$_OFR_CONFIGURE" != "" ]; then
- ${vyatta_sbindir}/vyatta-config-gen-sets.pl -
+ ${vyos_libexec_dir}/commands-pipe.py
else
echo "commands pipe is not supported in operational mode"
fi
@@ -599,6 +599,48 @@ _vyatta_set_comptype ()
done
}
+_filedir_xspec_vyos()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ _tilde "$cur" || return 0
+
+ local IFS=$'\n' xspec=${_xspec[${1##*/}]} tmp
+ local -a toks
+
+ toks=( $(
+ compgen -d -- "$(quote_readline "$cur")" | {
+ while read -r tmp; do
+ printf '%s\n' $tmp
+ done
+ }
+ ))
+
+ # Munge xspec to contain uppercase version too
+ # http://thread.gmane.org/gmane.comp.shells.bash.bugs/15294/focus=15306
+ eval xspec="${xspec}"
+ local matchop=!
+ if [[ $xspec == !* ]]; then
+ xspec=${xspec#!}
+ matchop=@
+ fi
+ xspec="$matchop($xspec|${xspec^^})"
+
+ toks+=( $(
+ eval compgen -f -X "!$xspec" -- "\$(quote_readline "\$cur")" | {
+ while read -r tmp; do
+ [[ -n $tmp ]] && printf '%s\n' $tmp
+ done
+ }
+ ))
+
+ if [[ ${#toks[@]} -ne 0 ]]; then
+ compopt -o filenames
+ COMPREPLY=( "${toks[@]}" )
+ fi
+}
+
nullglob_save=$( shopt -p nullglob )
shopt -s nullglob
for f in ${vyatta_datadir}/vyatta-op/functions/allowed/* ; do
diff --git a/etc/default/vyatta.in b/etc/default/vyatta.in
index 88940f5..9841dc5 100644
--- a/etc/default/vyatta.in
+++ b/etc/default/vyatta.in
@@ -26,22 +26,28 @@ unset _vyatta_extglob
if test -z "$vyatta_prefix" ; then
if test -n "@prefix@" ; then
declare -x -r vyatta_prefix=@prefix@
+ declare -x -r vyos_prefix=@prefix@
else
declare -x -r vyatta_prefix=/opt/vyatta
+ declare -x -r vyos_prefix=/opt/vyatta
fi
fi
if test -z "$vyatta_exec_prefix" ; then
if test -n "@exec_prefix@" ; then
declare -x -r vyatta_prefix=@exec_prefix@
+ declare -x -r vyos_prefix=@exec_prefix@
else
declare -x -r vyatta_prefix=$vyatta_prefix
+ declare -x -r vyos_prefix=$vyatta_prefix
fi
fi
if test -z "$vyatta_datarootdir" ; then
if test -n "@datarootdir@" ; then
declare -x -r vyatta_datarootdir=@datarootdir@
+ declare -x -r vyos_datarootdir=@datarootdir@
else
declare -x -r vyatta_datarootdir=$vyatta_prefix/share
+ declare -x -r vyos_datarootdir=$vyatta_prefix/share
fi
fi
if test -z "$vyatta_bindir" ; then
@@ -61,8 +67,10 @@ unset _vyatta_extglob
if test -z "$vyatta_libdir" ; then
if test -n "@libdir@" ; then
declare -x -r vyatta_libdir=@libdir@
+ declare -x -r vyos_libdir=@libdir@
else
declare -x -r vyatta_libdir=$vyatta_exec_prefix/lib
+ declare -x -r vyos_libdir=$vyatta_exec_prefix/lib
fi
fi
if test -z "$vyatta_libexecdir" ; then
@@ -75,8 +83,10 @@ unset _vyatta_extglob
if test -z "$vyatta_datadir" ; then
if test -n "@datadir@" ; then
declare -x -r vyatta_datadir=@datadir@
+ declare -x -r vyos_datadir=@datadir@
else
declare -x -r vyatta_datadir=$vyatta_datarootdir
+ declare -x -r vyos_datadir=$vyatta_datarootdir
fi
fi
if test -z "$vyatta_htmldir" ; then
@@ -131,18 +141,41 @@ unset _vyatta_extglob
if test -z "$vyatta_op_templates" ; then
declare -x -r vyatta_op_templates=$vyatta_datadir/vyatta-op/templates
+ declare -x -r vyos_op_templates=$vyatta_datadir/vyatta-op/templates
fi
if test -z "$vyatta_cfg_templates" ; then
declare -x -r vyatta_cfg_templates=$vyatta_datadir/vyatta-cfg/templates
+ declare -x -r vyos_cfg_templates=$vyatta_datadir/vyatta-cfg/templates
fi
if test -z "$vyatta_configdir" ; then
declare -x -r vyatta_configdir=$vyatta_prefix/config
+ declare -x -r vyos_configdir=$vyatta_prefix/config
fi
for var in prefix exec_prefix datarootdir ; do
eval test -n \"\$_vyatta_save_$var\" \&\& $var=\$_vyatta_save_$var
done
-
+
+ # It's not like we do, or should support installing VyOS at a different prefix
+ declare -x -r vyos_libexec_dir=/usr/libexec/vyos
+ declare -x -r vyos_bin_dir=/usr/bin
+ declare -x -r vyos_sbin_dir=/usr/sbin
+
+ if test -z "$vyos_conf_scripts_dir" ; then
+ declare -x -r vyos_conf_scripts_dir=$vyos_libexec_dir/conf_mode
+ fi
+
+ if test -z "$vyos_op_scripts_dir" ; then
+ declare -x -r vyos_op_scripts_dir=$vyos_libexec_dir/op_mode
+ fi
+
+ if test -z "$vyos_completion__dir" ; then
+ declare -x -r vyos_completion_dir=$vyos_libexec_dir/completion
+ fi
+
+ if test -z "$vyos_validators_dir" ; then
+ declare -x -r vyos_validators_dir=$vyos_libexec_dir/validators
+ fi
} 2>/dev/null || :