about summary refs log tree commit diff
path: root/Completion/Unix/Command/_mt
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_mt')
-rw-r--r--Completion/Unix/Command/_mt78
1 files changed, 78 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_mt b/Completion/Unix/Command/_mt
new file mode 100644
index 000000000..8296d1c8d
--- /dev/null
+++ b/Completion/Unix/Command/_mt
@@ -0,0 +1,78 @@
+#compdef mt
+
+local -a args cmds
+local state line curcontext="$curcontext"
+
+args=( '(-)-f[specify raw tape device]:tape device:_files' )
+cmds=(
+  {eof,weof}':write specified number of EOF marks at current position'
+  'fsf:forward space by specified number of files'
+  'fsr:forward space by specified number of records'
+  'bsf:backward space by specified number of files'
+  'bsr:backward space by specified number of records'
+  'asf:absolute space to specified file number'
+  'eom:go to end of recorded media on the tape'
+  'rewind:rewind the tape'
+  {offline,rewoffl}':rewind and unload the tape'
+  'status:print status information about the tape unit'
+  'retension:rewind, wind to end of reel, rewind again - smoothes tape tension'
+  'erase:erase the tape'
+)
+
+if _pick_variant gnu=GNU unix --version; then
+  args=(
+    '(1 2 -)'{-V,--version}'[print version info]' 
+    '(1 2 -)--help[display usage info]'
+    '(-V --version --help -f --file)'{-f,--file=}'[specify raw tape device]:tape device:_files'
+    '(-V --version --help)--rsh-command=[specify remote shell command]:rsh command:_command_names -e'
+  )
+  # should really allow remote user@host for tape device
+  cmds+=(
+    'bsfm:backward space by specified number of file marks'
+    'fsfm:forward space by specified number of file marks'
+    'fss:forward space by specified number of setmarks'
+    'bss:backward space by specified number of setmarks'
+    'wset:write specified number of setmarks at current position'
+    {eod,seod}':space to end of valid data'
+    'setblk:set drive block size'
+    'setdensity:set tape density code'
+    'drvbuffer:set drive buffer code'
+    'stoptions:set driver option bits'
+    'stwrthreshold:set device write threshold'
+    'seek:seek to specified block'
+    'tell:tell the current block on tape'
+    'densities:explain some common density codes'
+    'datcompression:enquire or set compression status'
+  )
+elif [[ $OSTYPE = freebsd* ]]; then
+  cmds=( ${cmds:#(asf|eof):*}
+    'smk:write specified number of setmarks at current position'
+    'fss:forward space by specified number of setmarks'
+    'bss:backward space by specified number of setmarks'
+    'rdhpos:read hardware block position'
+    'rdspos:read SCSI logical block position'
+    'sethpos:set hardware block position'
+    'setspos:set SCSI logical block position'
+    'errstat:print error status info about device'
+    'blocksize:set drive block size'
+    'density:set tape density code'
+    'geteotmodel:print the current EOT filemark model'
+    'seteotmodel:set the current EOT filemark model'
+    'eod:go to end of recorded media on the tape'
+    'comp:set compression mode'
+  )
+elif [[ $OSTYPE = solaris* ]]; then
+  cmds+=(
+    'nbsf:back space by specified number of files positioning at file start'
+    'reserve:allow drive to remain reserved after close until explicit release'
+    'release:re-establish release at close behaviour'
+  )
+  if (( ! EUID )); then
+    cmds+=( 'forcereserve:break reservation of tape drive held by other host' )
+  fi
+fi
+
+_arguments -C "$args[@]" '(--help --version -V)1:operation:->operation' \
+    '2:count:' && return
+
+[[ -n "$state" ]] && _describe -t operations 'operation' cmds