From 97aeb6be2ed6f73aa4e72f07792eb594231f7dc7 Mon Sep 17 00:00:00 2001 From: grambbledook Date: Tue, 25 Nov 2025 21:39:27 +0100 Subject: [PATCH] change foo output --- goinst/main.go | 76 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/goinst/main.go b/goinst/main.go index 01e74734b11..fc95c954f24 100644 --- a/goinst/main.go +++ b/goinst/main.go @@ -5,35 +5,39 @@ import ( "log" "os" "os/exec" + "strings" "time" ) +var ( + Asm = "asm" + Compile = "compile" + Link = "link" +) + func main() { if len(os.Args) < 2 { fmt.Fprintln(os.Stderr, "Usage: toolexec [args...]") os.Exit(1) } - tool := os.Args[1] - args := os.Args[2:] - start := time.Now() - cmd := exec.Command(tool, args...) + cmd := exec.Command(os.Args[1], os.Args[2:]...) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr err := cmd.Run() elapsed := time.Since(start) - log.Println("======================") - log.Printf("%v", args) - log.Println("") - log.Printf(" tool: %s", tool) - log.Printf(" package: %s", args[len(args)-1]) - log.Printf(" args: %v", args) - log.Printf(" elapsed: %s", elapsed) - log.Println("======================") - log.Println("") + + switch getTool(os.Args[1]) { + case Asm: + printAsm(elapsed) + case Compile: + printCompile(elapsed) + case Link: + printLink(elapsed) + } if err != nil { if exitErr, ok := err.(*exec.ExitError); ok { @@ -44,3 +48,49 @@ func main() { } } } + +func printAsm(elapsed interface{}) { + log.Println("==========Asm=========") + log.Printf(" tool: %s", Asm) + log.Printf(" package: %s", os.Args[len(os.Args)-1]) + log.Printf(" elapsed: %s", elapsed) + log.Println("======================") + log.Println("") +} + +func printCompile(elapsed interface{}) { + log.Println("========Compile=======") + log.Printf(" tool: %s", Compile) + log.Printf(" package: %s", getPackage(os.Args)) + log.Printf(" elapsed: %s", elapsed) + log.Println("======================") + log.Println("") +} + +func printLink(elapsed interface{}) { + log.Println("========LINK========") + log.Printf(" tool: %s", Link) + log.Printf(" package: %s", os.Args[len(os.Args)-1]) + log.Printf(" elapsed: %s", elapsed) + log.Println("======================") + log.Println("") +} + +func getTool(tool string) string { + parts := strings.Split(tool, "/") + return parts[len(parts)-1] +} + +func getPackage(args []string) string { + for i, v := range args { + if i+1 == len(args) { + break + } + + if v == "-p" { + return args[i+1] + } + } + + return "unknown" +}