12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/bin/bash
- if [ -d /etc/dinit.d/ ]; then
- _etc_dinit_services_path="/etc/dinit.d/"
- else
- _etc_dinit_services_path=""
- fi
- if [ -d /lib/dinit.d/ ]; then
- _lib_dinit_services_path="/lib/dinit.d/"
- else
- _lib_dinit_services_path=""
- fi
- if [ -d /usr/local/lib/dinit.d/ ]; then
- _usr_dinit_services_path="/usr/local/lib/dinit.d/"
- else
- _usr_dinit_services_path=""
- fi
- if [ -d $HOME/.config/dinit.d/ ]; then
- _dinit_user_services_path="$HOME/.config/dinit.d/"
- else
- _dinit_user_services_path=""
- fi
- _dinit_all_services() {
- for path in $_etc_dinit_services_path $_usr_dinit_services_path\
- $_lib_dinit_services_path $_dinit_user_services_path; do
- ls $path
- done
- }
- _dinitctl_comp() {
- local cur=${COMP_WORDS[COMP_CWORD]}
- local thr=1
- local flags=()
- for word in "${COMP_WORDS[@]}"; do
- if [[ $word == -* || $word == --* ]]; then
- flags+=("$word")
- fi
- done
- ((thr+=${#flags[@]}))
- if [ ${COMP_CWORD} -gt $(($thr + 2)) ]; then
- return
- fi
- if [ ${COMP_CWORD} -eq $thr ]; then
- COMPREPLY=($(compgen -W\
- "status\
- list\
- start\
- stop\
- restart\
- enable\
- disable\
- is-started\
- is-failed\
- wake\
- release\
- unpin\
- unload\
- reload\
- shutdown\
- add-dep\
- rm-dep\
- trigger\
- untrigger\
- setenv\
- catlog\
- signal\
- " -- "$cur"))
- return
- fi
- local services
- case "${COMP_WORDS[$thr]}" in
- "start"|"stop"|"restart"|"status"|"disable"|"enable"|"is-started"|"is-failed"|\
- "add-dep"|"rm-dep"|"trigger"|"untrigger"|"wake"|"release"|"unpin"|"unload"|\
- "reload"|"catlog"|"signal")
- services=$(_dinit_all_services)
- esac
- if [ -z "$services" ]; then
- return
- fi
- COMPREPLY=($(compgen -W "$services" -- "$cur"))
- }
- complete -F _dinitctl_comp dinitctl
|