Commit 44fef7d2 authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

scripts/setup: Add quick interactive mode



Change-Id: I08dde2baba4967e1bf5c8944dd7513fc010d6d11
Signed-off-by: default avatarMichal Berger <michal.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19442


Reviewed-by: default avatarJim Harris <jim.harris@gmail.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
parent daf647bc
Loading
Loading
Loading
Loading
+20 −7
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ elevate() {
	((UID != 0)) || return 0

	if yn "You ($UID) need to be root to commit any changes. Elevate privileges?"; then
		exec sudo -E "$rootdir/scripts/setup.sh" interactive
		exec sudo -E "$rootdir/scripts/setup.sh" interactive "$@"
	fi
}

@@ -33,10 +33,17 @@ stdin() {
}

main_menu() {
	local type=all answer
	local type=all answer quick_mode=$1

	stdin || return 1
	elevate
	elevate "$quick_mode"

	case "${quick_mode,,}" in
		config | reset)
			editor odevices quick && mode=$quick_mode
			return
			;;
	esac

	while ((1)); do
		cat <<- MENU
@@ -165,7 +172,7 @@ fdevices() {
}

editor() {
	local devs_list=() devs_to_modify=()
	local devs_list=() devs_picked=() devs_skipped=()
	local editor=${VISUAL:-${EDITOR:-vim}}
	local tmp_file

@@ -195,17 +202,23 @@ editor() {
		case "${action,,}" in
			s | skip)
				[[ $_type != *"not used"* ]] && continue
				devs_to_modify+=("$dev")
				devs_skipped+=("$dev")
				;;
			p | pick)
				[[ $_type == *"not used"* ]] && continue
				devs_to_modify+=("$dev")
				devs_picked+=("$dev")
				;;
		esac
	done < "$tmp_file"
	rm "$tmp_file"

	"$1" < <(printf '%s\n' "${devs_to_modify[@]}")
	if [[ $2 == quick ]] && ((${#devs_picked[@]} > 0)); then
		if ! yn "Detected data on some of the devices (${devs_picked[*]}). Continue?"; then
			return 1
		fi
	fi

	"$1" < <(printf '%s\n' "${devs_skipped[@]}" "${devs_picked[@]}")

}

+1 −1
Original line number Diff line number Diff line
@@ -865,7 +865,7 @@ fi

if [[ $mode == interactive ]]; then
	source "$rootdir/scripts/common/setup/interactive.sh"
	main_menu || exit 0
	main_menu "$2" || exit 0
fi

if [[ $mode == reset && $PCI_BLOCK_SYNC_ON_RESET == yes ]]; then