This removes the requirement to call fmsg.Exit on every exit path, and enables direct use of the "log" package. However, fmsg.BeforeExit is still encouraged when possible to catch exit on suspended output. Signed-off-by: Ophestra <cat@gensokyo.uk>
51 lines
729 B
Go
51 lines
729 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"os"
|
|
|
|
"git.gensokyo.uk/security/fortify/internal"
|
|
"git.gensokyo.uk/security/fortify/internal/fmsg"
|
|
)
|
|
|
|
const shell = "/run/current-system/sw/bin/bash"
|
|
|
|
func init() {
|
|
if err := os.Setenv("SHELL", shell); err != nil {
|
|
log.Fatalf("cannot set $SHELL: %v", err)
|
|
}
|
|
}
|
|
|
|
var (
|
|
flagVerbose bool
|
|
)
|
|
|
|
func init() {
|
|
flag.BoolVar(&flagVerbose, "v", false, "Verbose output")
|
|
}
|
|
|
|
func main() {
|
|
fmsg.Prepare("fpkg")
|
|
|
|
flag.Parse()
|
|
fmsg.Store(flagVerbose)
|
|
|
|
args := flag.Args()
|
|
if len(args) < 1 {
|
|
log.Fatal("invalid argument")
|
|
}
|
|
|
|
switch args[0] {
|
|
case "install":
|
|
actionInstall(args[1:])
|
|
case "start":
|
|
actionStart(args[1:])
|
|
|
|
default:
|
|
log.Fatal("invalid argument")
|
|
}
|
|
|
|
internal.Exit(0)
|
|
}
|