package cmd import ( log "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/wiretrustee/wiretrustee/connection" "os" ) var ( key string allowedIPs string addPeerCmd = &cobra.Command{ Use: "add-peer", Short: "add remote peer", Run: func(cmd *cobra.Command, args []string) { InitLog(logLevel) if _, err := os.Stat(configPath); os.IsNotExist(err) { log.Error("config doesn't exist, please run 'wiretrustee init' first") os.Exit(ExitSetupFailed) } config, _ := Read(configPath) config.Peers = append(config.Peers, connection.Peer{ WgPubKey: key, WgAllowedIps: allowedIPs, }) err := config.Write(configPath) if err != nil { log.Errorf("failed writing config to %s: %s", config, err.Error()) os.Exit(ExitSetupFailed) } }, } ) func init() { addPeerCmd.PersistentFlags().StringVar(&key, "key", "", "Wireguard public key of the remote peer") addPeerCmd.PersistentFlags().StringVar(&allowedIPs, "allowedIPs", "", "Wireguard Allowed IPs for the remote peer, e.g 10.30.30.2/32") addPeerCmd.MarkPersistentFlagRequired("key") addPeerCmd.MarkPersistentFlagRequired("allowedIPs") }