Guest User

Untitled

a guest
Mar 2nd, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.87 KB | None | 0 0
  1. # -*- mode: sh -*-
  2. shopt -s extglob progcomp
  3.  
  4. ## commandのあとにファイルをとるタイプ
  5. _command_file() {
  6. local cur prev
  7. local commands="$1"
  8.  
  9. COMPREPLY=()
  10. cur=${COMP_WORDS[COMP_CWORD]}
  11. prev=${COMP_WORDS[COMP_CWORD-1]}
  12.  
  13. # do not attempt completion if we're specifying an option
  14. [ "$cur" == -* ] && return 0
  15.  
  16. #echo "cur:$cur prev:$prev" >&2
  17. # first parameter on line or first since an option?
  18. if [ $COMP_CWORD = 1 ] || [[ "$prev" == -* ]]; then
  19. COMPREPLY=( $( compgen -W "$commands" $cur ))
  20. fi
  21.  
  22. return 0
  23. }
  24.  
  25. ## daemontools
  26. _daemonup() {
  27. local cur
  28. cur=${COMP_WORDS[$COMP_CWORD]}
  29.  
  30. if [ -d "$SYS_HOME" ]; then
  31. DAEMONDIR=$SYS_HOME/daemon;
  32. else
  33. DAEMONDIR=/usr/irori/daemon;
  34. fi
  35.  
  36. WORDS=$(ls -1 $DAEMONDIR)
  37. COMPREPLY=( $(compgen -W "$WORDS" -- "$cur") )
  38. }
  39. complete -F _daemonup daemonup
  40.  
  41. _daemondown() {
  42. local cur
  43. cur=${COMP_WORDS[$COMP_CWORD]}
  44.  
  45. WORDS=$(ls -1 /service)
  46. COMPREPLY=( $(compgen -W "$WORDS" -- "$cur") )
  47. }
  48. complete -F _daemondown daemondown
  49. complete -F _daemondown taitailf
  50. complete -F _daemondown tailess
  51.  
  52. ## gisty
  53. _gisty() {
  54. _command_file "list post private_post sync sync_delete pull_all help"
  55. }
  56. complete -F _gisty -o default gisty
  57.  
  58. ## openssl
  59. _openssl() {
  60. _command_file "asn1parse ca ciphers crl crl2pkcs7 dgst dh dhparam dsa dsaparam enc engine errstr gendh gendsa genrsa nseq ocsp passwd pkcs12 pkcs7 pkcs8 prime rand req rsa rsautl s_client s_server s_time sess_id smime speed spkac verify version x509"
  61. }
  62. complete -F _openssl -o default openssl
  63.  
  64. ### xen
  65. _xm() {
  66. _command_file "create console shutdown block-attach block-detach block-list list"
  67. }
  68. complete -F _xm -o default xm
  69.  
  70. ### freeipmi
  71. ipmi_host=
  72. for ((i=101; i<=116; i++)); do
  73. ipmi_host="$ipmi_host $(printf 'mi%03d' $i)"
  74. done
  75.  
  76. _ipmi_general() {
  77. local cur prev
  78. COMPREPLY=()
  79. cur=${COMP_WORDS[COMP_CWORD]}
  80. prev=${COMP_WORDS[COMP_CWORD-1]}
  81.  
  82. local ipmi_user="admin"
  83. local ipmi_workaround="authcap authcap,solpayloadsize"
  84. local ipmi_general_opts="-h -u -p -P --config-file -W"
  85.  
  86. local ipmi_opts="$ipmi_general_opts $@"
  87.  
  88. #echo "cur:$cur prev:$prev" >&2
  89.  
  90. case $prev in
  91. -u)
  92. COMPREPLY=($( compgen -W "$ipmi_user" -- $cur ))
  93. ;;
  94. -h)
  95. COMPREPLY=($( compgen -W "$ipmi_host" -- $cur ))
  96. ;;
  97. --config-file)
  98. COMPREPLY=($( compgen -f -- $cur ))
  99. ;;
  100. -W)
  101. COMPREPLY=($( compgen -W "$ipmi_workaround" -- $cur ))
  102. ;;
  103. *)
  104. COMPREPLY=($( compgen -W "$ipmi_opts" -- $cur ))
  105. ;;
  106. esac
  107.  
  108. return 0
  109. }
  110.  
  111. _ipmi_ping() {
  112. local cur prev
  113. COMPREPLY=()
  114. cur=${COMP_WORDS[COMP_CWORD]}
  115. prev=${COMP_WORDS[COMP_CWORD-1]}
  116.  
  117. local my_opts="-c"
  118.  
  119. case $prev in
  120. -c)
  121. COMPREPLY=($( compgen -W "5 10 30" -- $cur ))
  122. ;;
  123. *)
  124. case "${COMP_WORDS[*]}" in
  125. *-@(c)*)
  126. COMPREPLY=($( compgen -W "$ipmi_host" -- $cur ))
  127. ;;
  128. *)
  129. COMPREPLY=($( compgen -W "$my_opts $ipmi_host" -- $cur ))
  130. ;;
  131. esac
  132. ;;
  133. esac
  134. }
  135.  
  136. _ipmi_power() {
  137. local my_opts="--on --off --reset --stat --on-if-off"
  138. _ipmi_general "$my_opts"
  139. }
  140.  
  141. _ipmi_bmcconfig() {
  142. local cur prev
  143. COMPREPLY=()
  144. cur=${COMP_WORDS[COMP_CWORD]}
  145. prev=${COMP_WORDS[COMP_CWORD-1]}
  146.  
  147. local my_opts="--checkout --commit --diff"
  148.  
  149. case $prev in
  150. --checkout)
  151. COMPREPLY=($( compgen -W "--section" -- $cur ))
  152. ;;
  153. --@(commit|diff))
  154. COMPREPLY=($( compgen -W "--key-pair" -- $cur ))
  155. ;;
  156. --section|-S)
  157. COMPREPLY=($( compgen -W "User1 User2 User3 Lan_Conf SOL_Conf" -- $cur ))
  158. ;;
  159. --key-pair|-e)
  160. case $cur in
  161. \"User[123]*)
  162. u=${cur:1:5}
  163. w=
  164. for p in Username= Enable_User=yes Password= Password20=; do
  165. w="$w $u:$p"
  166. done
  167. COMPREPLY=($( compgen -W "$w" -- $cur ))
  168. ;;
  169. \"Lan_Conf*)
  170. w=
  171. for p in IP_Address Subnet_Mask Default_Gateway_IP_Address; do
  172. w="$w Lan_Conf:$p"
  173. done
  174. COMPREPLY=($( compgen -W "$w" -- $cur ))
  175. ;;
  176. \"SOL_Conf*)
  177. w=
  178. for p in Enable_SOL SOL_Privilege_Level=Administrator Non_Volatile_Bit_Rate=19200/38400/57600/115200 Volatile_Bit_Rate=; do
  179. w="$w SOL_Conf:$p"
  180. done
  181. COMPREPLY=($( compgen -W "$w" -- $cur ))
  182. ;;
  183. *)
  184. COMPREPLY=($( compgen -P '"' -W 'User1: User2: User3: Lan_Conf Lan_Conf: SOL_Conf SOL_Conf:' $cur ))
  185. ;;
  186. esac
  187. ;;
  188. *)
  189. _ipmi_general "$my_opts"
  190. ;;
  191. esac
  192. }
  193. complete -F _ipmi_general ipmi-sensors
  194. complete -F _ipmi_general ipmiconsole
  195. complete -F _ipmi_ping ipmiping
  196. complete -F _ipmi_power ipmipower
  197. complete -F _ipmi_bmcconfig bmc-config
  198.  
  199. ## Tokyo Cabinet
  200. _tchmgr() {
  201. local cur prev
  202. local commands="create inform put out get list optimize importtsv version"
  203. COMPREPLY=()
  204. cur=${COMP_WORDS[COMP_CWORD]}
  205. prev=${COMP_WORDS[COMP_CWORD-1]}
  206. arg1=${COMP_WORDS[1]}
  207.  
  208. if [ $COMP_CWORD -eq 1 ]; then
  209. COMPREPLY=($( compgen -W "$commands" -- $cur ))
  210. else
  211. case $prev in
  212. create)
  213. COMPREPLY=($( compgen -W "-td -tb X.tc" -- $cur ))
  214. ;;
  215. inform|put|out|get|list|importtsv)
  216. COMPREPLY=($( compgen -W "-nl -nb" -- $cur ) \
  217. $( compgen -f -X '!*.tc?(h)' -- $cur ) \
  218. $( compgen -d -- $cur ))
  219. ;;
  220. optimize)
  221. COMPREPLY=($( compgen -W "-td -tb" -- $cur ) \
  222. $( compgen -f -X '!*.tc?(h)' -- $cur ) \
  223. $( compgen -d -- $cur ))
  224. ;;
  225. -*)
  226. COMPREPLY=($( compgen -f -X '!*.tc?(h)' -- $cur ) \
  227. $( compgen -d -- $cur ))
  228. ;;
  229. *)
  230. # pathの次
  231. case $arg1 in
  232. create|optimize)
  233. COMPREPLY=($( compgen -W "bnum" -- $cur ))
  234. ;;
  235. put|out|get)
  236. COMPREPLY=($( compgen -W "key" -- $cur ))
  237. ;;
  238. bnum)
  239. ;;
  240. esac
  241. ;;
  242. esac
  243. fi
  244. }
  245.  
  246. complete -F _tchmgr tchmgr
Add Comment
Please, Sign In to add comment