Files
0xFFFF/debian/completions/_0xFFFF
T

164 lines
4.1 KiB
Plaintext

#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 "$@"