Fossil

Hex Artifact Content
Login

Artifact 1135105ee18b95823944e2fa425806d3bc0f4252:


0000: 23 20 43 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 63  # Command name c
0010: 6f 6d 70 6c 65 74 69 6f 6e 20 66 6f 72 20 46 6f  ompletion for Fo
0020: 73 73 69 6c 2e 0a 23 20 4d 61 69 6c 69 6e 67 2d  ssil..# Mailing-
0030: 6c 69 73 74 20 63 6f 6e 74 72 69 62 75 74 69 6f  list contributio
0040: 6e 20 62 79 20 53 74 75 61 72 74 20 52 61 63 6b  n by Stuart Rack
0050: 68 61 6d 2e 0a 66 75 6e 63 74 69 6f 6e 20 5f 66  ham..function _f
0060: 6f 73 73 69 6c 28 29 20 7b 0a 20 20 20 20 6c 6f  ossil() {.    lo
0070: 63 61 6c 20 63 75 72 20 63 6f 6d 6d 61 6e 64 73  cal cur commands
0080: 0a 20 20 20 20 63 75 72 3d 24 7b 43 4f 4d 50 5f  .    cur=${COMP_
0090: 57 4f 52 44 53 5b 43 4f 4d 50 5f 43 57 4f 52 44  WORDS[COMP_CWORD
00a0: 5d 7d 0a 20 20 20 20 63 6f 6d 6d 61 6e 64 73 3d  ]}.    commands=
00b0: 24 28 66 6f 73 73 69 6c 20 68 65 6c 70 20 2d 2d  $(fossil help --
00c0: 61 6c 6c 29 0a 20 20 20 20 69 66 20 5b 20 24 43  all).    if [ $C
00d0: 4f 4d 50 5f 43 57 4f 52 44 20 2d 65 71 20 31 20  OMP_CWORD -eq 1 
00e0: 5d 20 7c 7c 20 5b 20 24 7b 43 4f 4d 50 5f 57 4f  ] || [ ${COMP_WO
00f0: 52 44 53 5b 31 5d 7d 20 3d 20 68 65 6c 70 20 5d  RDS[1]} = help ]
0100: 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20  ; then.         
0110: 20 20 20 23 20 43 6f 6d 6d 61 6e 64 20 6e 61 6d     # Command nam
0120: 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 6f 72  e completion for
0130: 20 31 73 74 20 61 72 67 75 6d 65 6e 74 20 6f 72   1st argument or
0140: 20 32 6e 64 20 69 66 20 68 65 6c 70 20 63 6f 6d   2nd if help com
0150: 6d 61 6e 64 2e 0a 20 20 20 20 20 20 20 20 43 4f  mand..        CO
0160: 4d 50 52 45 50 4c 59 3d 28 20 24 28 63 6f 6d 70  MPREPLY=( $(comp
0170: 67 65 6e 20 2d 57 20 22 24 63 6f 6d 6d 61 6e 64  gen -W "$command
0180: 73 22 20 24 63 75 72 29 20 29 0a 20 20 20 20 65  s" $cur) ).    e
0190: 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  lse.            
01a0: 23 20 46 69 6c 65 20 6e 61 6d 65 20 63 6f 6d 70  # File name comp
01b0: 6c 65 74 69 6f 6e 20 66 6f 72 20 6f 74 68 65 72  letion for other
01c0: 20 61 72 67 75 6d 65 6e 74 73 2e 0a 20 20 20 20   arguments..    
01d0: 20 20 20 20 43 4f 4d 50 52 45 50 4c 59 3d 28 20      COMPREPLY=( 
01e0: 24 28 63 6f 6d 70 67 65 6e 20 2d 66 20 24 63 75  $(compgen -f $cu
01f0: 72 29 20 29 0a 20 20 20 20 66 69 0a 7d 0a 63 6f  r) ).    fi.}.co
0200: 6d 70 6c 65 74 65 20 2d 6f 20 64 65 66 61 75 6c  mplete -o defaul
0210: 74 20 2d 46 20 5f 66 6f 73 73 69 6c 20 66 6f 73  t -F _fossil fos
0220: 73 69 6c 20 66 0a                                sil f.