summaryrefslogtreecommitdiffstats
path: root/scripts/salsa.bash_completion
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scripts/salsa.bash_completion109
1 files changed, 109 insertions, 0 deletions
diff --git a/scripts/salsa.bash_completion b/scripts/salsa.bash_completion
new file mode 100644
index 0000000..29a2c95
--- /dev/null
+++ b/scripts/salsa.bash_completion
@@ -0,0 +1,109 @@
+# /usr/share/bash-completion/completions/salsa
+# Bash command completion for ‘salsa(1)’.
+# Documentation: ‘bash(1)’, section “Programmable Completion”.
+
+shopt -s progcomp
+
+_salsa_completion () {
+ COMPREPLY=()
+
+ local cur="${COMP_WORDS[COMP_CWORD]}"
+ local prev="${COMP_WORDS[COMP_CWORD-1]}"
+
+ local opts=""
+# Source: ./lib/Devscripts/Config.pm:sub parse_command_line
+ opts+=" --help"
+# Source: ./lib/Devscripts/Output.pm:sub ds_prompt
+ opts+=" --info"
+# Source: ./lib/Devscripts/Config.pm:[...]$ARGV[0]
+ opts+=" --conf-file --no-conf"
+# Source: ./lib/Devscripts/Salsa/Config.pm:use constant keys
+# Note: '<VALUE>!' == '--<VALUE> --no-<VALUE>', '<SHORT>|<LONG>'
+# Headings: $ grep '^ #' ./lib/Devscripts/Salsa/Config.pm
+ # General salsa
+ opts+=" --chdir --cache-file --no-cache --path"
+ # Responses
+ opts+=" --yes --no-yes --no-fail"
+ # Output
+ opts+=" --verbose --no-verbose --debug --info"
+ # General GitLab
+ opts+=" --user --user-id --group --group-id --token --token-file"
+ # List/search
+ opts+=" --all --all-archived --archived --no-archived"
+ opts+=" --skip --skip-file --no-skip"
+ # Features
+ opts+=" --analytics --auto-devops --container --environments"
+ opts+=" --feature-flags --forks --infrastructure --issues --jobs --lfs"
+ opts+=" --monitor --mr --packages --pages --releases --repo --service-desk"
+ opts+=" --request-access --requirements --security-compliance "
+ opts+=" --snippets --wiki"
+ # Branding
+ opts+=" --avatar-path --desc --no-desc --desc-pattern"
+ # Notification
+ opts+=" --email --no-email --disable-email --no-disable-email"
+ opts+=" --email-recipient --irc-channel --irker --no-irker --disable-irker"
+ opts+=" --no-disable-irker --irker-host --irker-port --kgb --no-kgb"
+ opts+=" --disable-kgb --no-disable-kgb --kgb-options --tagpending"
+ opts+=" --no-tagpending --disable-tagpending --no-disable-tagpending"
+ # Branch
+ opts+=" --rename-head --no-rename-head --source-branch --dest-branch"
+ opts+=" --enable-remove-source-branch --no-enable-remove-source-branch"
+ opts+=" --disable-remove-source-branch --no-disable-remove-source-branch"
+ # Merge requests
+ opts+=" --mr-allow-squash --no-mr-allow-squash --mr-desc --mr-dst-branch"
+ opts+=" --mr-dst-project --mr-remove-source-branch"
+ opts+=" --no-mr-remove-source-branch --mr-src-branch --mr-src-project"
+ opts+=" --mr-title"
+ # CI
+ opts+=" --build-timeout --ci-config-path"
+ # Pipeline schedules
+ opts+=" --schedule-desc --schedule-ref --schedule-cron --schedule-tz"
+ opts+=" --schedule-enable --no-schedule-enable --schedule-disable"
+ opts+=" --no-schedule-disable --schedule-run --no-schedule-run"
+ opts+=" --schedule-delete --no-schedule-delete"
+ # Manage other GitLab instances
+ opts+=" --api-url --git-server-url --irker-server-url --kgb-server-url"
+ opts+=" --tagpending-server-url
+
+# Source: ./lib/Devscripts/Salsa.pm:sub run -> $ ls ./lib/Devscripts/Salsa/*.pm
+# Skipping: Config Hooks Repo -> `with "Devscripts::Salsa::<VALUE>";`
+# Then filter from: ./lib/Devscripts/Salsa.pm:use constant cmd_aliases -> Preferred terminology
+ local commands=""
+# Headings: $ grep '^=head' ./scripts/salsa.pl
+ # Managing users and groups
+ commands+=" add_user join list_groups update_user whoami"
+ # Managing projects
+ commands+=" checkout fork forks last_ci_status merge_request"
+ commands+=" merge_requests pipeline_schedule pipeline_schedules"
+ commands+=" protect_branch protected_branches push push_repo"
+ commands+=" rename_branch update_safe"
+ # Other
+ commands+=" purge_cache"
+
+# Aliases source: ./lib/Devscripts/Salsa.pm:use constant cmd_aliases -> Preferred terminology
+ commands+=" check_projects create_project delete_project delete_user"
+ commands+=" list_projects list_users search_groups search_projects "
+ commands+=" search_users update_projects"
+
+ # Disable completion for the arguments which require variables afterwards
+ case "${prev}" in
+ --api-url) ;&
+ --desc-pattern) ;&
+ --irc-channel) ;&
+ --path) ;&
+ --group-id) ;&
+ --user-id)
+ COMPREPLY=()
+ ;;
+ *)
+ if [[ "$cur" == -* ]]; then
+ COMPREPLY=( $( compgen -W "$opts" -- $cur ) )
+ else
+ COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
+ fi
+ ;;
+ esac
+ return 0
+}
+
+complete -F _salsa_completion salsa