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  }