util/autoport: Factor out yes/no prompt handling
In preparation for introducing other yes/no prompts, factor out the logic into a common function. Change-Id: Iff1f0c6c665a5352013122fb791121a116c434f3 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/82402 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
@ -75,6 +75,31 @@ func PromptUser(prompt string, opts []string) (match string, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AppendYesNo(yesFirst bool, yeah []string, nope []string) []string {
|
||||||
|
if yesFirst {
|
||||||
|
return append(yeah, nope...)
|
||||||
|
} else {
|
||||||
|
return append(nope, yeah...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func PromptUserBool(prompt string, fallback bool) bool {
|
||||||
|
yeah := []string{"y", "yes"}
|
||||||
|
nope := []string{"n", "no"}
|
||||||
|
|
||||||
|
opt, err := PromptUser(prompt, AppendYesNo(fallback, yeah, nope))
|
||||||
|
if err != nil {
|
||||||
|
// Continue even if there is an error
|
||||||
|
return fallback
|
||||||
|
}
|
||||||
|
for _, val := range yeah {
|
||||||
|
if opt == val {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func MakeHDALogs(outDir string, cardName string) {
|
func MakeHDALogs(outDir string, cardName string) {
|
||||||
SysDir := "/sys/class/sound/" + cardName + "/"
|
SysDir := "/sys/class/sound/" + cardName + "/"
|
||||||
files, _ := ioutil.ReadDir(SysDir)
|
files, _ := ioutil.ReadDir(SysDir)
|
||||||
@ -119,16 +144,13 @@ func MakeLogs(outDir string) {
|
|||||||
RunAndSave(outDir+"/dmidecode.log", "dmidecode")
|
RunAndSave(outDir+"/dmidecode.log", "dmidecode")
|
||||||
RunAndSave(outDir+"/acpidump.log", "acpidump")
|
RunAndSave(outDir+"/acpidump.log", "acpidump")
|
||||||
|
|
||||||
inteltoolArgs := "-a"
|
probeGFX := PromptUserBool("WARNING: The following tool MAY cause your system to hang when it attempts "+
|
||||||
opt, err := PromptUser("WARNING: The following tool MAY cause your system to hang when it attempts "+
|
|
||||||
"to probe for graphics registers. Having the graphics registers will help create a better port. "+
|
"to probe for graphics registers. Having the graphics registers will help create a better port. "+
|
||||||
"Should autoport probe these registers?",
|
"Should autoport probe these registers?",
|
||||||
[]string{"y", "yes", "n", "no"})
|
true)
|
||||||
|
|
||||||
// Continue even if there is an error
|
inteltoolArgs := "-a"
|
||||||
|
if probeGFX {
|
||||||
switch opt {
|
|
||||||
case "y", "yes":
|
|
||||||
inteltoolArgs += "f"
|
inteltoolArgs += "f"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user