decred.org/dcrdex@v1.0.5/server/cmd/validatemarkets/main.go (about) 1 package main 2 3 import ( 4 "errors" 5 "flag" 6 "fmt" 7 "os" 8 "os/user" 9 "path/filepath" 10 11 "decred.org/dcrdex/dex" 12 _ "decred.org/dcrdex/server/asset/importall" 13 dexsrv "decred.org/dcrdex/server/dex" 14 "github.com/decred/dcrd/dcrutil/v4" 15 ) 16 17 const ( 18 defaultMarketsConfFilename = "markets.json" 19 ) 20 21 var ( 22 defaultAppDataDir = dcrutil.AppDataDir("dcrdex", false) 23 defaultConfigPath = filepath.Join(defaultAppDataDir, defaultMarketsConfFilename) 24 ) 25 26 func main() { 27 if err := mainErr(); err != nil { 28 fmt.Fprint(os.Stderr, err, "\n") 29 os.Exit(1) 30 } 31 os.Exit(0) 32 } 33 34 func mainErr() error { 35 var cfgPath string 36 var testnet, simnet, harness, debug bool 37 flag.BoolVar(&testnet, "testnet", false, "use testnet") 38 flag.BoolVar(&simnet, "simnet", false, "use simnet") 39 flag.BoolVar(&harness, "harness", false, "use filepath for for simnet harness") 40 flag.BoolVar(&debug, "debug", false, "extra logging") 41 flag.StringVar(&cfgPath, "path", defaultConfigPath, "path to configuration file") 42 flag.Parse() 43 44 net := dex.Mainnet 45 if testnet { 46 if simnet || harness { 47 return errors.New("can't select testnet and simnet (or harness) together") 48 } 49 net = dex.Testnet 50 } else if simnet { 51 if harness { 52 return errors.New("can't select simnet and harness together") 53 } 54 net = dex.Simnet 55 } else if harness { 56 net = dex.Simnet 57 u, _ := user.Current() 58 cfgPath = filepath.Join(u.HomeDir, "dextest", "dcrdex", defaultMarketsConfFilename) 59 } 60 61 logLvl := dex.LevelInfo 62 if debug { 63 logLvl = dex.LevelDebug 64 } 65 log := dex.StdOutLogger("MS", logLvl, false) 66 67 err := dexsrv.ValidateConfigFile(cfgPath, net, log) 68 if err != nil { 69 return err 70 } 71 return nil 72 }