2018-11-08 10:07:16 +08:00
|
|
|
# openocd is a utility for programming microcontrollers, especially popular with
|
|
|
|
# developers targeting ARM devices. It has a number of pre-installed configuration
|
|
|
|
# scripts to control its connection behavior which are in its installation directory
|
|
|
|
# and may be specified at the command line via relative paths as if you were cd'd
|
|
|
|
# into that directory.
|
|
|
|
|
|
|
|
# Retrieve the likely compile-time PREFIX for openocd based off of where the binary
|
|
|
|
# is located. e.g. if openocd is /usr/local/bin/openocd return /usr/local
|
|
|
|
function __fish_openocd_prefix
|
2019-05-05 18:53:09 +08:00
|
|
|
string replace "/bin/openocd" "" (which openocd)
|
2018-11-08 10:07:16 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
# The results of this function are as if __fish_complete_suffix were called
|
|
|
|
# while cd'd into the openocd scripts directory
|
|
|
|
function __fish_complete_openocd_path
|
2019-05-05 18:53:09 +08:00
|
|
|
__fish_complete_suffix (commandline -ct) "$argv[1]" "$argv[2]" (__fish_openocd_prefix)/share/openocd/scripts
|
2018-11-08 10:07:16 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
complete -c openocd -f # at no point does openocd take arbitrary arguments
|
|
|
|
complete -c openocd -s h -l help -d "display help"
|
|
|
|
complete -c openocd -s v -l version -d "display version info"
|
|
|
|
complete -c openocd -s f -l file -xa '(__fish_complete_openocd_path .cfg)'
|
|
|
|
complete -c openocd -s d -l debug -d "run under debug level 3"
|
|
|
|
complete -c openocd -s d -l debug -d "run under debug level n" -xa '(seq 1 9)'
|
|
|
|
complete -c openocd -s l -l log_output -d "redirect output to file" -r
|
|
|
|
complete -c openocd -s c -l command -d "run command"
|
|
|
|
complete -c openocd -s s -l search -d "search path for config files and scripts" -xa '(__fish_complete_directories)'
|