diff --git a/core/base/global.go b/core/base/global.go index 813f74de..3a37d18f 100644 --- a/core/base/global.go +++ b/core/base/global.go @@ -3,12 +3,13 @@ package base import ( "errors" "flag" - - "github.com/safing/portbase/modules/subsystems" + "fmt" "github.com/safing/portbase/api" "github.com/safing/portbase/dataroot" + "github.com/safing/portbase/info" "github.com/safing/portbase/modules" + "github.com/safing/portbase/modules/subsystems" "github.com/safing/portbase/notifications" ) @@ -18,16 +19,31 @@ var ( dataDir string databaseDir string + showVersion bool ) func init() { flag.StringVar(&dataDir, "data", "", "set data directory") flag.StringVar(&databaseDir, "db", "", "alias to --data (deprecated)") + flag.BoolVar(&showVersion, "version", false, "show version and exit") modules.SetGlobalPrepFn(globalPrep) } func globalPrep() error { + // check if meta info is ok + err := info.CheckVersion() + if err != nil { + return errors.New("compile error: please compile using the provided build script") + } + + // print version + if showVersion { + fmt.Println(info.FullVersion()) + return modules.ErrCleanExit + } + + // check data root if dataroot.Root() == nil { // initialize data dir diff --git a/pmctl/main.go b/pmctl/main.go index 77123b8c..1784fff9 100644 --- a/pmctl/main.go +++ b/pmctl/main.go @@ -71,7 +71,7 @@ func init() { func main() { // set meta info - info.Set("Portmaster Control", "0.3.3", "AGPLv3", true) + info.Set("Portmaster Control", "0.3.3", "AGPLv3", false) // for debugging // log.Start()