Initial Commit
This commit is contained in:
60
cmd/gofakeroot/fakeroot.go
Normal file
60
cmd/gofakeroot/fakeroot.go
Normal file
@ -0,0 +1,60 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"lure.sh/fakeroot"
|
||||
"lure.sh/fakeroot/loginshell"
|
||||
)
|
||||
|
||||
func main() {
|
||||
var showHelp bool
|
||||
flag.BoolVar(&showHelp, "help", false, "Show help screen")
|
||||
flag.BoolVar(&showHelp, "h", false, "Show help screen")
|
||||
flag.Parse()
|
||||
|
||||
if showHelp {
|
||||
printHelp()
|
||||
return
|
||||
}
|
||||
|
||||
var (
|
||||
cmd string
|
||||
args []string
|
||||
err error
|
||||
)
|
||||
if flag.NArg() > 1 {
|
||||
cmd = flag.Arg(0)
|
||||
args = flag.Args()[1:]
|
||||
} else {
|
||||
cmd, err = loginshell.Get(-1)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
c, err := fakeroot.Command(cmd, args...)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
c.Stdin = os.Stdin
|
||||
c.Stdout = os.Stdout
|
||||
c.Stderr = os.Stderr
|
||||
|
||||
err = c.Run()
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
|
||||
func printHelp() {
|
||||
fmt.Print("Fakeroot implementation written in Go.\n\n")
|
||||
fmt.Print("Usage: fakeroot [cmd] [args...]\n\n")
|
||||
fmt.Print("Arguments:\n")
|
||||
fmt.Print(" [cmd] Command to execute in fakeroot environment. If not specified, the user's login shell will be executed.\n")
|
||||
fmt.Print(" [args...] Arguments to pass to the executed command.\n")
|
||||
}
|
Reference in New Issue
Block a user