home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / etc / bash_completion.d / service < prev    next >
Encoding:
Text File  |  2010-11-16  |  1.4 KB  |  47 lines

  1. # service(8) and /etc/init.d/* completion
  2.  
  3. # This completes on a list of all available service scripts for the
  4. # 'service' command and/or the SysV init.d directory, followed by
  5. # that script's available commands
  6. #
  7. { have service || [ -d /etc/init.d/ ]; } &&
  8. _service()
  9. {
  10.     local cur prev sysvdir
  11.  
  12.     COMPREPLY=()
  13.     _get_comp_words_by_ref cur prev
  14.  
  15.     # don't complete for things like killall, ssh and mysql if it's
  16.     # the standalone command, rather than the init script
  17.     [[ ${COMP_WORDS[0]} != @(*init.d/!(functions|~)|service) ]] && return 0
  18.  
  19.     # don't complete past 2nd token
  20.     [ $COMP_CWORD -gt 2 ] && return 0
  21.  
  22.     [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d || sysvdir=/etc/init.d
  23.  
  24.     if [[ $COMP_CWORD -eq 1 ]] && [[ $prev == "service" ]]; then
  25.         _services
  26.     else
  27.         COMPREPLY=( $( compgen -W '`sed -e "y/|/ /" \
  28.             -ne "s/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p" \
  29.             $sysvdir/${prev##*/} 2>/dev/null`' -- "$cur" ) )
  30.     fi
  31.  
  32.     return 0
  33. } &&
  34. complete -F _service service
  35. [ -d /etc/init.d/ ] && (
  36.     services=$(for i in /etc/init.d/*; do
  37.         complete -p ${i##*/} &>/dev/null || printf '%s\n' ${i##*/}; done)
  38.     [ -n "$services" ] && complete -F _service -o default $services;)
  39.  
  40. # Local variables:
  41. # mode: shell-script
  42. # sh-basic-offset: 4
  43. # sh-indent-comment: t
  44. # indent-tabs-mode: nil
  45. # End:
  46. # ex: ts=4 sw=4 et filetype=sh
  47.