diff options
Diffstat (limited to 'debian/completions/_0xFFFF')
-rw-r--r-- | debian/completions/_0xFFFF | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/debian/completions/_0xFFFF b/debian/completions/_0xFFFF new file mode 100644 index 0000000..ee3d2a8 --- /dev/null +++ b/debian/completions/_0xFFFF @@ -0,0 +1,163 @@ +#compdef 0xFFFF + +flaglist=( + 'no-omap-wd[disable auto reboot by OMAP watchdog]' + 'no-ext-wd[disable auto reboot by external watchdog]' + 'no-lifeguard-reset[disable auto reboot by software lifeguard]' + 'serial-console[enable serial console]' + 'no-usb-timeout[disable usb timeout for flashing]' + 'sti-console[enable sti console]' + 'no-charging[disable battery charging]' + 'force-power-key[force omap boot reason to power key]' +) + +typelist=( + 'xloader' + '2nd' + 'secondary' + 'kernel' + 'initfs' + 'rootfs' + 'mmc' + 'cmt-2nd' + 'cmt-algo' + 'cmt-mcusw' +) + +devlist=( + 'SU-18' + 'RX-34' + 'RX-44' + 'RX-48' + 'RX-51' +) + +_dev() { + _wanted devices expl 'device' \ + compadd -S: "$@" $devlist +} + +_hw() { + # cannot auto-complete hardware +} + +_ver() { + # cannot auto-complete version +} + +_type() { + compset -P "*:" + compset -P "*," + _wanted types expl 'types' \ + compadd -q -S: "$@" $typelist +} + +_img() { + compset -P "*:" + compset -P "*%" + _files -q -S% +} + +_0xFFFF() { + local context curcontext="$curcontext" state line state_descr val_args opt_args + typeset -A flags types + + _arguments -C \ + '-b[boot default or loaded kernel (default: no cmdline)]::' \ + '-r[reboot device]' \ + '-l[load kernel and initfs images to RAM]' \ + '-f[flash all specified images]' \ + '-c[cold flash 2nd and secondary image]' \ + '-x[check for bad blocks on mtd device (default: all)]::' \ + '-E[dump all device images to one fiasco image, see -t]:' \ + '-e[dump all device images to directory, see -t (default: current)]:directory:' \ + '-I[identify, show all information about device]' \ + '-D[change root device]:device:((0\:flash 1\:mmc 2\:usb))' \ + '-U[enable/disable USB host mode]:bool:((0\:disable 1\:enable))' \ + '-R[enable/disable R&D mode]:bool:((0\:disable 1\:enable))' \ + '-F[change R&D flags, flags are comma separated list]::flags:->flags' \ + '-H[change HW revision]:revision' \ + '-N[change NOLO version string]:version' \ + '-K[change kernel version string]:version' \ + '-T[change initfs version string]:version' \ + '-S[change SW release version string]:version' \ + '-C[change content eMMC version string]:version' \ + '-M[specify fiasco image]:file' \ + '*-m[specify normal image]:argument:->image' \ + '-t[filter images by type]:types:->types' \ + '-d[filter images by device]:device' \ + '-w[filter images by HW revision]:hardware' \ + '-u[unpack fiasco image to directory (default: current)]::directory:_files -/' \ + '-g[generate fiasco image with SW rel version (default: no version)]:file:_files' \ + '-i[identify images]' \ + '-s[simulate, do not flash or write on disk]' \ + '-n[disable hash, checksum and image type checking]' \ + '-v[be verbose and noisy]' \ + '-h[show this help message]' + + case "$state" in + flags) + _values -s , "R&D flags" ${flaglist} + ;; + types) + _values -s , "Types" ${typelist} + ;; + image) + #arg is [[[dev:[hw:]]ver:]type:]file[%lay] + local hasdev=false hastype=false + + PARTS=`echo $PREFIX | grep -o : | wc -l` + if [[ "$PARTS" != "0" ]] ; then + for p in `seq $PARTS` ; do + part=`echo $PREFIX | cut -d : -f $p` + IFS=" " + for d in $devlist ; do + if [[ "$part" == "$d" ]] ; then + hasdev=true; + fi + done + for t in $typelist ; do + # comma separated list + echo "$part" | grep -q "$t" + if [ $? -eq 0 ] ; then + hastype=true; + fi + done + done + fi + + if [[ "$PARTS" == "0" ]] ; then + _alternative \ + 'devices:device:_dev' \ + 'version:ver:_ver' \ + 'types:type:_type' \ + 'files:file:_img' + elif [[ "$hastype" == "true" ]] ; then + _alternative \ + 'files:file:_img' + elif [[ "$PARTS" == "1" && "$hasdev" == "true" ]] ; then + _alternative \ + 'hardware:hw:_hw' \ + 'version:ver:_ver' \ + 'types:type:_type' \ + 'files:file:_img' + elif [[ "$PARTS" == "1" ]] ; then + _alternative \ + 'types:type:_type' \ + 'files:file:_img' + elif [[ "$PARTS" == "2" && "$hasdev" == "true" ]] ; then + _alternative \ + 'version:ver:_ver' \ + 'types:type:_type' \ + 'files:file:_img' + elif [[ "$PARTS" == "3" ]] ; then + _alternative \ + 'types:type:_type' \ + 'files:file:_img' + fi + ;; + esac + +} + +_0xFFFF "$@" |