mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00

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>
78 lines
1.7 KiB
Cheetah
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
|