github.com/Bytom/bytom@v1.1.2-0.20210127130405-ae40204c0b09/cmd/bytomd/commands/init.go (about)

     1  package commands
     2  
     3  import (
     4  	"os"
     5  	"path"
     6  
     7  	log "github.com/sirupsen/logrus"
     8  	"github.com/spf13/cobra"
     9  
    10  	cfg "github.com/bytom/bytom/config"
    11  )
    12  
    13  var initFilesCmd = &cobra.Command{
    14  	Use:   "init",
    15  	Short: "Initialize blockchain",
    16  	Run:   initFiles,
    17  }
    18  
    19  func init() {
    20  	initFilesCmd.Flags().String("chain_id", config.ChainID, "Select [mainnet] or [testnet] or [solonet]")
    21  
    22  	RootCmd.AddCommand(initFilesCmd)
    23  }
    24  
    25  func initFiles(cmd *cobra.Command, args []string) {
    26  	configFilePath := path.Join(config.RootDir, "config.toml")
    27  	if _, err := os.Stat(configFilePath); !os.IsNotExist(err) {
    28  		log.WithFields(log.Fields{"module": logModule, "config": configFilePath}).Info("Already exists config file.")
    29  		return
    30  	}
    31  
    32  	switch config.ChainID {
    33  	case "mainnet", "testnet":
    34  		cfg.EnsureRoot(config.RootDir, config.ChainID)
    35  	default:
    36  		cfg.EnsureRoot(config.RootDir, "solonet")
    37  	}
    38  
    39  	log.WithFields(log.Fields{"module": logModule, "config": configFilePath}).Info("Initialized bytom")
    40  }