From 5343b1fc27827e0a0cbced395e9353ef4db50d5c Mon Sep 17 00:00:00 2001 From: Chris Ching Date: Tue, 17 May 2016 11:56:03 -0600 Subject: autoport: Add prompt for enabling unsafe inteltool glx option Change-Id: Ib674ab7ca8b6464de553a86536b1762fda98d94e Signed-off-by: Chris Ching Reviewed-on: https://review.coreboot.org/14901 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- util/autoport/log_maker.go | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'util') diff --git a/util/autoport/log_maker.go b/util/autoport/log_maker.go index bae24c8fa4..50e0e65827 100644 --- a/util/autoport/log_maker.go +++ b/util/autoport/log_maker.go @@ -1,6 +1,8 @@ package main import ( + "errors" + "fmt" "io" "io/ioutil" "log" @@ -45,13 +47,52 @@ func RunAndSave(output string, name string, arg ...string) { } } +const MAXPROMPTRETRY = 3 + +func PromptUser(prompt string, opts []string) (match string, err error) { + for i := 1; i < MAXPROMPTRETRY; i++ { + fmt.Println("%s. (%s) Default:%s", prompt, strings.Join(opts, "/"), opts[0]) + var usrInput string + fmt.Scanln(&usrInput) + + // Check for default entry + if usrInput == "" { + match = opts[0] + return + } + + for _, opt := range opts { + if opt == usrInput { + match = opt + return + } + } + } + err = errors.New("max retries exceeded") + fmt.Fprintln(os.Stderr, "ERROR: max retries exceeded") + return +} + func MakeLogs(outDir string) { os.MkdirAll(outDir, 0700) RunAndSave(outDir+"/lspci.log", "lspci", "-nnvvvxxxx") RunAndSave(outDir+"/dmidecode.log", "dmidecode") RunAndSave(outDir+"/acpidump.log", "acpidump") - /* FIXME:XX */ - RunAndSave(outDir+"/inteltool.log", "../inteltool/inteltool", "-a") + + inteltoolArgs := "-a" + 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. "+ + "Should autoport probe these registers?", + []string{"y", "yes", "n", "no"}) + + // Continue even if there is an error + + switch opt { + case "y", "yes": + opt += " -f" + } + + RunAndSave(outDir+"/inteltool.log", "../inteltool/inteltool", inteltoolArgs) RunAndSave(outDir+"/ectool.log", "../ectool/ectool") SysDir := "/sys/class/sound/card0/" -- cgit v1.2.3