change foo output

This commit is contained in:
grambbledook
2025-12-11 19:09:47 +01:00
parent c87df1304f
commit 97aeb6be2e
+63 -13
View File
@@ -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 <tool> [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"
}