package cmd import ( "git.cijber.net/zer.ooo/service" "github.com/spf13/cobra" "os" "path/filepath" ) var ( endpoint string location string ) var initCmd = &cobra.Command{ Use: "init", Short: "Initialises an zer.ooo server install", Long: "Init (zerooo init) will initialise a server", Run: func(cmd *cobra.Command, args []string) { config, err := service.LoadConfig(ConfigPath) service.Check(err, "Failed reading config, err: %s", err) if (cmd.Flag("endpoint").Changed) { config.Zerooo.Endpoint = endpoint } if (cmd.Flag("location").Changed) { if len(location) > 0 && location[0] != '/' { cwd, err := os.Getwd() service.Check(err, "Can't get current working directory, err: %s", err) location = filepath.Join(cwd, location) } config.Zerooo.Location = location } service.CreateConfig(ConfigPath, config) mgmt := service.NewManager(*config) mgmt.Init() mgmt.Register() }, } func init() { f := initCmd.Flags() f.StringVar(&endpoint, "endpoint", "https://zer.ooo", "Endpoint to register this server") f.StringVar(&location, "location", "/etc/zerooo", "Location of OpenVPN installation") }