radare2/doc/bash_autocompletion.sh

193 lines
3.3 KiB
Bash

#!/bin/bash
if [ -z "$BASH" ]; then
autoload bashcompinit
bashcompinit
fi
_r2 () {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prv=${COMP_WORDS[COMP_CWORD-1]}
case "$prv" in
-a)
COMPREPLY=( $(compgen -W "$(rasm2 -qL)" -- $cur))
return 0
;;
-b)
COMPREPLY=( $(compgen -W "8 16 32 64" -- $cur ))
return 0
;;
-k)
COMPREPLY=( $(compgen -W "$(r2 -qc 'e asm.os=?' --)" -- $cur ))
return 0
;;
-e)
COMPREPLY=( $(compgen -W "$(r2 -qceq --)" -- $cur ))
return 0
;;
-F)
COMPREPLY=( $(compgen -W "$(rabin2 -qL)" -- $cur ))
return 0
;;
-H)
COMPREPLY=( $(compgen -W "$(r2 -H |cut -d = -f 1)" -- $cur))
return 0
;;
-p)
COMPREPLY=( $(compgen -W "$(r2 -p?)" -- $cur ))
return 0
;;
-D)
COMPREPLY=( $(compgen -W "$(r2 -D?)" -- $cur ))
return 0
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W '-0 -a -A -b -B -c -C -d -D -e -f -F -h -hh -H -i -I -k -l -L -m -M -n -nn -N -o -q -p -P -R -s -S -t -u -v -V -w -z -zz' -- $cur))
;;
*)
COMPREPLY=( $(compgen -f -- $cur))
;;
esac
return 0
}
complete -F _r2 -o filenames r2
complete -F _r2 -o filenames radare2
_rasm2 () {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prv=${COMP_WORDS[COMP_CWORD-1]}
case "$prv" in
-a)
COMPREPLY=( $(compgen -W "$(rasm2 -qL)" -- $cur))
return 0
;;
-b)
COMPREPLY=( $(compgen -W "8 16 32 64" -- $cur ))
return 0
;;
-c)
# TODO. grab -a and get asm.cpu=? output
return 0
;;
-k)
COMPREPLY=( $(compgen -W "$(r2 -qc 'e asm.os=?' --)" -- $cur ))
return 0
;;
-s)
COMPREPLY=( $(compgen -W "$(rasm2 -s?)" -- $cur ))
return 0
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W '-a -A -b -c -C -d -D -e -E -f -F -h -i -k-l -L -o -O -s -B -v -w -q' -- $cur))
;;
*)
COMPREPLY=( $(compgen -f -- $cur))
;;
esac
return 0
}
complete -F _rasm2 -o filenames rasm2
_rabin2 () {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prv=${COMP_WORDS[COMP_CWORD-1]}
case "$prv" in
-a)
COMPREPLY=( $(compgen -W "$(rasm2 -qL)" -- $cur))
return 0
;;
-b)
COMPREPLY=( $(compgen -W "8 16 32 64" -- $cur ))
return 0
;;
-c)
# TODO. grab -a and get asm.cpu=? output
return 0
;;
-k)
COMPREPLY=( $(compgen -W "$(r2 -qc 'e asm.os=?' --)" -- $cur ))
return 0
;;
-s)
COMPREPLY=( $(compgen -W "$(r2 -qc 'e asm.syntax=?' --)" -- $cur ))
return 0
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W '-a -A -b -c -C -d -D -e -E -f -F -h -i -k-l -L -o -O -s -B -v -w -q' -- $cur))
;;
*)
COMPREPLY=( $(compgen -f -- $cur))
;;
esac
return 0
}
complete -F _rabin2 -o filenames rabin2
_rafind2 () {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
case "$cur" in
-*)
COMPREPLY=( $( compgen -W '-a -b -e -f -h -m -M -n -r -s -S -t -v -x -X -z -Z' -- $cur))
;;
*)
COMPREPLY=( $(compgen -f -- $cur))
;;
esac
return 0
}
complete -F _rafind2 -o filenames rafind2
_radiff2() {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prv=${COMP_WORDS[COMP_CWORD-1]}
case "$prv" in
-a)
COMPREPLY=( $(compgen -W "$(rasm2 -qL)" -- $cur))
return 0
;;
-b)
COMPREPLY=( $(compgen -W "8 16 32 64" -- $cur ))
return 0
;;
esac
case "$cur" in
-*)
COMPREPLY=( $( compgen -W '-a -A -AA -AAA -b -c -C -d -D -g -j -n -O -p -r -s -ss -S -t -x -v -V' -- $cur))
;;
*)
COMPREPLY=( $(compgen -f -- $cur))
;;
esac
return 0
}
complete -F _radiff2 -o filenames radiff2