about summary refs log tree commit diff
path: root/Completion/Unix/Command/_timeout
blob: 9c7f1a004e174bc2cb7745f23910b91ed6259e08 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#compdef timeout gtimeout

local args

if [[ $service = g* || $OSTYPE != *(freebsd|netbsd|openbsd)* ]]; then
  # GNU coreutils or DFly as opposed to Free/Net/OpenBSD implementation
  args=(
    '(-v --verbose)'{-v,--verbose}'[indicate when signal is sent upon timeout]'
    '(- *)--help[display usage information]'
    '(- *)--version[display version information]'
  )
fi

_arguments -S -A "-" $args \
  '--preserve-status[always exit with the same status as command even if it times out]' \
  "--foreground[don't propagate timeout to the command children]" \
  '(-s --signal)'{-s,--signal}'[specify the signal to send on timeout]:signal:_signals' \
  '(-k --kill-after)'{-k,--kill-after}'[followup first signal with SIGKILL if command persists after specified time]:time' \
  '1: :_numbers -f -u seconds duration :s:seconds m:minutes h:hours d:days' \
  '*:::command: _normal -p $service'