diff options
author | Chris Ching <chingcodes@google.com> | 2016-05-17 11:56:03 -0600 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-06-12 12:27:57 +0200 |
commit | 5343b1fc27827e0a0cbced395e9353ef4db50d5c (patch) | |
tree | 212b519d22be4b0151ccb6646ab45626b613bc2f | |
parent | bb9c90a2074ac0138a4d1083bf0d9f52a39b47d5 (diff) |
autoport: Add prompt for enabling unsafe inteltool glx option
Change-Id: Ib674ab7ca8b6464de553a86536b1762fda98d94e
Signed-off-by: Chris Ching <chingcodes@google.com>
Reviewed-on: https://review.coreboot.org/14901
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r-- | util/autoport/log_maker.go | 45 |
1 files changed, 43 insertions, 2 deletions
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/" |