diff --git a/tools/bash_completion/arkmanager b/tools/bash_completion/arkmanager new file mode 100644 index 0000000..c0bc96f --- /dev/null +++ b/tools/bash_completion/arkmanager @@ -0,0 +1,33 @@ +# a bash_completion for arkmanager with server names +# ARK: survival evolved manager +# +# Original author: AnEmortalKid + +_arkmanager() +{ + local cur prev opts home_instances etc_instances + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + # retrieve the ones in /etc/arkmanager/instances first + etc_instances=$(for f in `ls -1 /etc/arkmanager/instances/*.cfg`; do if [ -f "${f}" ]; then instancename="${f##*/}"; echo "@${instancename%.cfg}"; fi done) + + # check that ${HOME}/.config/arkmanager/instances exists + if [ -d "${HOME}/.config/arkmanager/instances/" ] ; then + # check that it also isn't empty if it exists + if [ "$(ls -A ${HOME}/.config/arkmanager/instances/)" ] ; then + home_instances=$(for f in `ls -1 ${HOME}/.config/arkmanager/instances/*.cfg`; do if [ -f "${f}" ]; then instancename="${f##*/}"; echo "@${instancename%.cfg}"; fi done) + fi + fi + + # append both results together for the completion + all_instances="@all ${etc_instances} ${home_instances}" + + if [[ ${cur} == @* ]] ; then + COMPREPLY=( $(compgen -W "${all_instances}" -- ${cur}) ) + return 0 + fi +} +complete -F _arkmanager arkmanager + diff --git a/tools/install.sh b/tools/install.sh index eac2d60..9be9ce6 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -308,6 +308,9 @@ else # Copy example instance config cp instance.cfg.example "${INSTALL_ROOT}${INSTANCEDIR}/instance.cfg.example" + # Copy arkmanager bash_completion into /etc/bash_completion.d/ + cp bash_completion/arkmanager "${INSTALL_ROOT}/etc/bash_completion.d/arkmanager" + # Copy arkmanager.cfg inside linux configuation folder if it doesn't already exists mkdir -p "${INSTALL_ROOT}/etc/arkmanager" chown "$steamcmd_user" "${INSTALL_ROOT}/etc/arkmanager" diff --git a/tools/uninstall.sh b/tools/uninstall.sh index e4f20b5..0b7d096 100644 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -35,3 +35,8 @@ if [ -n "$INITSCRIPT" ]; then fi done fi + +# remove bash_completion.d +if [ -f "/etc/bash_completion.d/arkmanager" ]; then + rm "/etc/bash_completion.d/arkmanager" +fi