fixup/main.go

97 lines
1.6 KiB
Go

// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
// Use of this source code is governed by the GPL 3.0
package main
import (
"debug/buildinfo"
"fmt"
"os"
"path/filepath"
"unicode"
"go.wit.com/dev/alexflint/arg"
"go.wit.com/log"
)
// sent via -ldflags
var VERSION string
var BUILDTIME string
func main() {
me = new(autoType)
me.argpp = arg.MustParse(&argv)
if argv.Bash {
argv.doBash()
os.Exit(0)
}
if len(argv.BashAuto) != 0 {
argv.doBashAuto()
os.Exit(0)
}
if argv.Drives != nil {
doDrives()
doDrives2()
}
listenForBlockEvents()
okExit("everything compiled")
}
func doFixup() {
okExit("list drives")
}
// this is dumb. sync this with go-deb
func trimNonNumericFromStart(s string) string {
for i, r := range s {
if unicode.IsDigit(r) {
return s[i:]
}
}
return ""
}
func okExit(thing string) {
if thing != "" {
log.Info(thing, "ok")
}
// log.Info("Finished go-clean on", check.GetGoPath(), "ok")
os.Exit(0)
}
func badExit(err error) {
log.Info("go-clean failed: ", err)
os.Exit(-1)
}
func dumpDebug() {
// Get absolute path of the currently running binary
exePath, err := os.Executable()
if err != nil {
fmt.Println("Error getting executable path:", err)
return
}
// Resolve symlinks if necessary
exePath, err = filepath.EvalSymlinks(exePath)
if err != nil {
fmt.Println("Error resolving symlink:", err)
return
}
// Read build info
bi, err := buildinfo.ReadFile(exePath)
if err != nil {
fmt.Println("Error reading build info:", err)
return
}
fmt.Println("Go Version:", bi.GoVersion)
for _, dep := range bi.Deps {
fmt.Printf("Dependency: %s %s\n", dep.Path, dep.Version)
}
}