diff --git a/client/Dockerfile b/client/Dockerfile index 6260697bdce674c6eb18751d72a64d37ad64bee6..ad1b4c1ec0d4efa740ed113a6f31dc11902ec105 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 0000000000000000000000000000000000000000..9f7081a81cf150eb47546a12fa0edd794691a720 --- /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 0000000000000000000000000000000000000000..614748b2568f057e93bd2d35aad2f4947c6df5f8 --- /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 0000000000000000000000000000000000000000..5156a621364ba7649fe6839b69a4d181712be22a --- /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