mirror of
https://github.com/sigcn/pg.git
synced 2026-04-24 12:31:46 +08:00
52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
package admin
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
func Run() error {
|
|
admin := flag.NewFlagSet("admin", flag.ExitOnError)
|
|
admin.Parse(flag.Args()[1:])
|
|
|
|
switch admin.Arg(0) {
|
|
case "get-meta":
|
|
return getMeta(admin)
|
|
case "set-meta":
|
|
return setMeta(admin)
|
|
case "networks":
|
|
return listNetworks(admin)
|
|
case "peers":
|
|
return listPeers(admin)
|
|
case "secret":
|
|
return generateSecret(admin)
|
|
}
|
|
return fmt.Errorf("unknown command \"%s\" for \"%s\"", admin.Arg(0), flag.CommandLine.Name())
|
|
}
|
|
|
|
func parseSecretKeyAndServer(flagSet *flag.FlagSet, args []string) (secretKey string, server string, err error) {
|
|
flagSet.StringVar(&secretKey, "secret-key", "", "key to generate network secret")
|
|
flagSet.StringVar(&secretKey, "s", "", "peermap server url")
|
|
flagSet.Parse(args)
|
|
|
|
if secretKey == "" {
|
|
secretKey = os.Getenv("PG_SECRET_KEY")
|
|
}
|
|
|
|
if secretKey == "" {
|
|
err = fmt.Errorf("flag \"secret-key\" is required")
|
|
return
|
|
}
|
|
|
|
if server == "" {
|
|
server = os.Getenv("PG_SERVER")
|
|
}
|
|
|
|
if server == "" {
|
|
err = fmt.Errorf("flag \"server\" is required")
|
|
server = os.Getenv("PG_SERVER")
|
|
}
|
|
return
|
|
}
|