mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-01 14:11:15 +02:00
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>
This commit is contained in:

committed by
Anastasia Klimchuk

parent
87531ef11c
commit
58888f78f3
77
util/flashrom.bash-completion.tmpl
Normal file
77
util/flashrom.bash-completion.tmpl
Normal file
@ -0,0 +1,77 @@
|
||||
# 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
|
Reference in New Issue
Block a user