summaryrefslogtreecommitdiffstats
path: root/completions/bash-nvme-completion.sh
diff options
context:
space:
mode:
Diffstat (limited to 'completions/bash-nvme-completion.sh')
-rw-r--r--completions/bash-nvme-completion.sh114
1 files changed, 106 insertions, 8 deletions
diff --git a/completions/bash-nvme-completion.sh b/completions/bash-nvme-completion.sh
index fae3ab4..8f451ff 100644
--- a/completions/bash-nvme-completion.sh
+++ b/completions/bash-nvme-completion.sh
@@ -5,8 +5,11 @@
# Kelly Kaoudis kelly.n.kaoudis at intel.com, Aug. 2015
nvme_list_opts () {
- local opts=""
+ local opts=""
local compargs=""
+ local vals=""
+ local opt=""
+ local val=""
local nonopt_args=0
for (( i=0; i < ${#words[@]}-1; i++ )); do
@@ -20,6 +23,19 @@ nvme_list_opts () {
fi
opts+=" "
+ vals+=" "
+
+ if [[ $cur != -* ]] && [[ $cur != "" ]] && [[ $prev == "=" ]] && [[ ${words[$cword-2]} == --* ]]; then
+ opt+="${words[$cword-2]}"
+ val+="$cur"
+ elif [[ $cur == "" ]] && [[ $prev != "=" ]] || [[ $cur == "=" ]] && [[ $prev == --* ]]; then
+ opt+="$prev"
+ elif [[ $cur != "=" ]] && [[ $prev != --* ]] && [[ $prev != "=" ]]; then
+ opt+="$prev"
+ val+="$cur"
+ else
+ opt+="$cur"
+ fi
# Listed here in the same order as in nvme-builtin.h
case "$1" in
@@ -88,13 +104,17 @@ nvme_list_opts () {
opts+=" --endgrp-id= -i --output-format= -o"
;;
"id-iocs")
- opts+=" --controller-id= -c --output-format= -o --human-readable -H"
+ opts+=" --controller-id= -c"
+ ;;
+ "id-domain")
+ opts+=" --domain-id= -c --output-format= -o"
;;
"create-ns")
opts+=" --nsze= -s --ncap= -c --flbas= -f \
--dps= -d --nmic= -m --anagrp-id= -a --nvmset-id= -i \
--block-size= -b --timeout= -t --csi= -y --lbstm= -l \
- --nsze-si= -S --ncap-si= -C"
+ --nphndls= -n --nsze-si= -S --ncap-si= -C --azr -z --rar= -r \
+ --ror= -o --rnumzrwa= -u --phndls= -p"
;;
"delete-ns")
opts+=" -namespace-id= -n --timeout= -t"
@@ -318,11 +338,12 @@ nvme_list_opts () {
--block-count= -c --deac -d --limited-retry -l \
--force-unit-access -f --prinfo= -p --ref-tag= -r \
--app-tag-mask= -m --app-tag= -a \
- --storage-tag= -S --storage-tag-check -C"
+ --storage-tag= -S --storage-tag-check -C \
+ --dir-type= -T --dir-spec= -S"
;;
"write-uncor")
opts+=" --namespace-id= -n --start-block= -s \
- --block-count= -c"
+ --block-count= -c --dir-type= -T --dir-spec= -S"
;;
"verify")
opts+=" --namespace-id= -n --start-block= -s \
@@ -334,6 +355,11 @@ nvme_list_opts () {
"sanitize")
opts+=" --no-dealloc -d --oipbp -i --owpass= -n \
--ause -u --sanact= -a --ovrpat= -p"
+ case $opt in
+ --sanact|-a)
+ vals+=" exit-failure start-block-erase start-overwrite start-crypto-erase"
+ ;;
+ esac
;;
"sanitize-log")
opts+=" --rae -r --output-format= -o --human-readable -H \
@@ -428,9 +454,13 @@ nvme_list_opts () {
;;
esac
- opts+=" -h --help"
+ opts+=" -h --help -j --json"
- COMPREPLY+=( $( compgen $compargs -W "$opts" -- $cur ) )
+ if [[ $vals == " " ]]; then
+ COMPREPLY+=( $( compgen $compargs -W "$opts" -- $cur ) )
+ else
+ COMPREPLY+=( $( compgen $compargs -W "$vals" -- $val ) )
+ fi
return 0
}
@@ -1266,6 +1296,68 @@ plugin_inspur_opts () {
return 0
}
+plugin_ocp_opts () {
+ local opts=""
+ local compargs=""
+
+ local nonopt_args=0
+ for (( i=0; i < ${#words[@]}-1; i++ )); do
+ if [[ ${words[i]} != -* ]]; then
+ let nonopt_args+=1
+ fi
+ done
+
+ if [ $nonopt_args -eq 3 ]; then
+ opts="/dev/nvme* "
+ fi
+
+ opts+=" "
+
+ case "$1" in
+ "smart-add-log")
+ opts+=" --output-format= -o"
+ ;;
+ "latency-monitor-log")
+ opts+=" --output-format= -o"
+ ;;
+ "set-latency-monitor-feature")
+ opts+=" --active_bucket_timer_threshold= -t \
+ --active_threshold_a= -a --active_threshold_b= -b \
+ --active_threshold_c= -c --active_threshold_d= -d \
+ --active_latency_config= -f \
+ --active_latency_minimum_window= -w \
+ --debug_log_trigger_enable -r --discard_debug_log= -l \
+ --latency_monitor_feature_enable= -e"
+ ;;
+ "internal-log")
+ opts+=" --telemetry_type= -t --telemetry_data_area= -a \
+ --output-file= -o"
+ ;;
+ "clear-fw-activate-history")
+ opts+=" --no-uuid -n"
+ ;;
+ "eol-plp-failure-mode")
+ opts+=" --mode= -m --save -s --sel= -S --no-uuid -n"
+ ;;
+ "clear-pcie-correctable-error-counters")
+ opts+=" --no-uuid -n"
+ ;;
+ "vs-fw-activate-history")
+ opts+=" --output-format= -o"
+ ;;
+ "device-capability-log")
+ opts+=" --output-format= -o"
+ ;;
+ "help")
+ opts+=$NO_OPTS
+ ;;
+ esac
+
+ COMPREPLY+=( $( compgen $compargs -W "$opts" -- $cur ) )
+
+ return 0
+}
+
_nvme_subcmds () {
local cur prev words cword
_init_completion || return
@@ -1320,6 +1412,11 @@ _nvme_subcmds () {
[nvidia]="id-ctrl"
[ymtc]="smart-log-add"
[inspur]="nvme-vendor-log"
+ [ocp]="smart-add-log latency-monitor-log \
+ set-latency-monitor-feature internal-log \
+ clear-fw-activate-history eol-plp-failure-mode \
+ clear-pcie-correctable-error-counters \
+ vs-fw-activate-history device-capability-log"
)
# Associative array mapping plugins to coresponding option completions
@@ -1341,6 +1438,7 @@ _nvme_subcmds () {
[nvidia]="plugin_nvidia_opts"
[ymtc]="plugin_ymtc_opts"
[inspur]="plugin_inspur_opts"
+ [ocp]="plugin_ocp_opts"
)
# Top level commands
@@ -1348,7 +1446,7 @@ _nvme_subcmds () {
id-ns-granularity list-ns list-ctrl \
id-ns-lba-format nvm-id-ns nvm-id-ns-lba-format \
nvm-id-ctrl primary-ctrl-caps list-secondary \
- ns-descs id-nvmset id-uuid id-iocs create-ns \
+ ns-descs id-nvmset id-uuid id-iocs id-domain create-ns \
delete-ns get-ns-id get-log telemetry-log \
fw-log changed-ns-list-log smart-log ana-log \
error-log effects-log endurance-log \