1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#compdef script scriptreplay
local args hlp="-h --help -V --version"
if [[ $service = scriptreplay ]]; then
_arguments -S -s \
"(1 -t --timing $hlp)"{-t+,--timing=}'[specify file containing timing output]:timing file:_files' \
"(2 -s --typescript $hlp)"{-s+,--typescript=}'[specify file containing terminal output]:typescript file:_files' \
"(3 -d --divisor $hlp)"{-d+,--divisor=}'[speed up replay]:factor' \
"(-m --maxdelay $hlp)"{-m+,--maxdelay=}'[set maximum delay between updates]:delay (seconds)' \
'(- *)'{-h,--help}'[display help information]' \
'(- *)'{-V,--version}'[display version information]' \
"(-t --timing $hlp):timing file:_files" \
"(-s --typescript $hlp):typescript file:_files" \
"(-d --divisor $hlp): :_guard '[0-9.]#' 'timing divisor'"
return
fi
case $OSTYPE in
linux*)
args=( -S
"(-a --append $hlp)"{-a,--append}'[append output]'
"(-c --command $hlp)"{-c,--command=}'[run specified command instead of a shell]:command:_cmdstring'
"(-e --return $hlp)"{-e,--return}'[return exit status of the child process]'
"(-f --flush $hlp)"{-f,--flush}'[flush output after each write]'
"($hlp)--force[use output file even when it is a link]"
"(-q --quiet $hlp)"{-q,--quiet}'[be quiet]'
"(-t --timing $hlp)"{-t-,--timing=-}'[output timing data]::timing file:_files'
'(- 1)'{-h,--help}'[display help information]'
'(- 1)'{-V,--version}'[display version information]'
)
;;
darwin*|dragonfly*|netbsd*|freebsd*)
args=(
'-q[be quiet: suppress display of starting and ending lines]'
)
;|
netbsd*|freebsd*)
args+=(
'(-a -r -k)-d[suppress sleeps when playing back a session]'
'(-a -r -k -t)-p[play back a recorded session]'
'(-d -p)-r[record a session with input, output and timing data]'
)
;|
netbsd*)
args+=(
'-f[flush output after each write]'
'-c[run specified command instead of a shell]:command:_cmdstring'
)
;|
freebsd*)
args+=(
'-f[use filemon(4)]'
)
;|
darwin*|dragonfly*|freebsd*)
args+=(
'-t+[specify interval of data flushing]:interval (seconds)'
'-k[log keys sent to the program as well as output]'
'*:::arguments: _normal'
)
;|
*)
args+=(
'(-p -d)-a[append output]'
)
;;
esac
_arguments -s $args \
"($hlp):typescript file:_files"
|