From fde4d029a483b9233a9784335c4268fa0ba6f49d Mon Sep 17 00:00:00 2001 From: Cristiano Urban <cristiano.urban@inaf.it> Date: Wed, 2 Jun 2021 13:47:30 +0200 Subject: [PATCH] Added bash-completion scripts for 'vos_data', 'vos_job' and 'vos_storage' cli commands. Signed-off-by: Cristiano Urban <cristiano.urban@inaf.it> --- client/Dockerfile | 10 +++++++++- client/config/bash_completion/vos_data | 14 ++++++++++++++ client/config/bash_completion/vos_job | 20 ++++++++++++++++++++ client/config/bash_completion/vos_storage | 14 ++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 client/config/bash_completion/vos_data create mode 100644 client/config/bash_completion/vos_job create mode 100644 client/config/bash_completion/vos_storage diff --git a/client/Dockerfile b/client/Dockerfile index 6260697..ad1b4c1 100644 --- a/client/Dockerfile +++ b/client/Dockerfile @@ -17,13 +17,16 @@ COPY *.py \ vos_storage /usr/bin/vos_cli/ RUN chmod -R 755 /usr/bin/vos_cli +# Copy bash-completion scripts +COPY config/bash_completion/* /usr/share/bash-completion/completions/ + # Copy configuration file RUN mkdir -p /etc/vos_cli COPY config/vos_cli.conf /etc/vos_cli/ RUN chmod -R 755 /etc/vos_cli # Set the PAH environment variable -ENV PATH "$PATH:/usr/bin/vos_cli" +ENV PATH "$PATH:/usr/bin/vos_cli" # Run commands as 'client' user USER client @@ -31,5 +34,10 @@ USER client # Set up a workdir for the container WORKDIR /home/client/ +# Source bash-completion scripts +RUN echo ". /usr/share/bash-completion/completions/vos_data" >> .bashrc && \ + echo ". /usr/share/bash-completion/completions/vos_job" >> .bashrc && \ + echo ". /usr/share/bash-completion/completions/vos_storage" >> .bashrc + # Install python dependencies RUN pip3.9 install --no-cache-dir redis tabulate diff --git a/client/config/bash_completion/vos_data b/client/config/bash_completion/vos_data new file mode 100644 index 0000000..9f7081a --- /dev/null +++ b/client/config/bash_completion/vos_data @@ -0,0 +1,14 @@ +_vos_data() +{ + local cur prev opts + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + opts="cstore hstore" + + if [[ ${cur} == ?store || ${COMP_CWORD} -eq 1 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 + fi +} +complete -F _vos_data vos_data diff --git a/client/config/bash_completion/vos_job b/client/config/bash_completion/vos_job new file mode 100644 index 0000000..614748b --- /dev/null +++ b/client/config/bash_completion/vos_job @@ -0,0 +1,20 @@ +_vos_job() +{ + local cur prev opts + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + opts="info list results" + + if [[ ${cur} == info || ${cur} == results || ${COMP_CWORD} -eq 1 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 + fi + + if [[ ${prev} == list ]] ; then + status="completed error executing pending queued" + COMPREPLY=( $(compgen -W "${status}" -- ${cur}) ) + return 0 + fi +} +complete -F _vos_job vos_job diff --git a/client/config/bash_completion/vos_storage b/client/config/bash_completion/vos_storage new file mode 100644 index 0000000..5156a62 --- /dev/null +++ b/client/config/bash_completion/vos_storage @@ -0,0 +1,14 @@ +_vos_storage() +{ + local cur prev opts + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + opts="add del list" + + if [[ ${cur} == add || ${cur} == del || ${cur} == list || ${COMP_CWORD} -eq 1 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 + fi +} +complete -F _vos_storage vos_storage -- GitLab