1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-26 22:52:34 +02:00
flashrom/util/flashrom.bash-completion.tmpl
Alexander Goncharov 58888f78f3 util: add bash completion script
Add a bash script for the flashrom CLI that auto-completes the command
sequence. The script is generated from a template by substituting a
list of enabled programmers. It requires an extra `bash-completion`
package to work, but, fortunately, it's installed on most systems.

Build system changes:

  meson:
   provide option `bash_completion` to determine if the script should
   be installed (depends on option `classic_cli`).

  makefile:
   make a list of enabled programmers (by using CONFIG_* variables)
   to do substitution manually

Change-Id: Ie68bc91c3cea4de2ffdbeffd07e48edd8d5590e1
Signed-off-by: Alexander Goncharov <chat@joursoir.net>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/68247
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
2023-01-18 21:04:58 +00:00

78 lines
1.7 KiB
Cheetah

# Completion file for bash
#
# This file is part of the flashrom project.
#
# Copyright 2022 Alexander Goncharov <chat@joursoir.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
_flashrom()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-r'|'--read'|'-w'|'--write'|'-v'|'--verify'|'-l'|'--layout'| \
'--fmap-file'|'-o'|'--output'|'--flash-contents')
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-c'|'--chip'|'--wp-range'|'--wp-region'|'-i'|'--include')
return 0
;;
'-p'|'--programmer')
COMPREPLY=( $(compgen -W "@PROGRAMMERS@" -- $cur) )
return 0
;;
'-h'|'--help'|'-R'|'--version'|'-L'|'--list-supported')
return 0
;;
esac
OPTS="--help
--version
--read
--write
--verify
--erase
--verbose
--chip
--force
--noverify
--noverify-all
--extract
--layout
--wp-disable
--wp-enable
--wp-list
--wp-status
--wp-range
--wp-region
--flash-name
--flash-size
--fmap
--fmap-file
--ifd
--include
--output
--flash-contents
--list-supported
--progress
--programmer"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
}
complete -F _flashrom flashrom