Browse Source

testnet cmd: ensure config dir exists. closes #1290

pull/1318/head
Emmanuel T Odeke 7 years ago
committed by Ethan Buchman
parent
commit
7cb3188fbc
2 changed files with 13 additions and 12 deletions
  1. +6
    -5
      cmd/tendermint/commands/testnet.go
  2. +7
    -7
      types/priv_validator.go

+ 6
- 5
cmd/tendermint/commands/testnet.go View File

@ -75,15 +75,16 @@ func testnetFiles(cmd *cobra.Command, args []string) {
// Initialize per-machine core directory // Initialize per-machine core directory
func initMachCoreDirectory(base, mach string) error { func initMachCoreDirectory(base, mach string) error {
// Create priv_validator.json file if not present
defaultConfig := cfg.DefaultBaseConfig()
dir := filepath.Join(base, mach) dir := filepath.Join(base, mach)
err := cmn.EnsureDir(dir, 0777)
privValPath := filepath.Join(dir, defaultConfig.PrivValidator)
dir = filepath.Dir(privValPath)
err := cmn.EnsureDir(dir, 0700)
if err != nil { if err != nil {
return err return err
} }
// Create priv_validator.json file if not present
defaultConfig := cfg.DefaultBaseConfig()
ensurePrivValidator(filepath.Join(dir, defaultConfig.PrivValidator))
ensurePrivValidator(privValPath)
return nil return nil
} }


+ 7
- 7
types/priv_validator.go View File

@ -98,6 +98,7 @@ type PrivValidator interface {
// PrivValidatorFS implements PrivValidator using data persisted to disk // PrivValidatorFS implements PrivValidator using data persisted to disk
// to prevent double signing. The Signer itself can be mutated to use // to prevent double signing. The Signer itself can be mutated to use
// something besides the default, for instance a hardware signer. // something besides the default, for instance a hardware signer.
// NOTE: the directory containing the privVal.filePath must already exist.
type PrivValidatorFS struct { type PrivValidatorFS struct {
Address Address `json:"address"` Address Address `json:"address"`
PubKey crypto.PubKey `json:"pub_key"` PubKey crypto.PubKey `json:"pub_key"`
@ -217,18 +218,17 @@ func (privVal *PrivValidatorFS) Save() {
} }
func (privVal *PrivValidatorFS) save() { func (privVal *PrivValidatorFS) save() {
if privVal.filePath == "" {
cmn.PanicSanity("Cannot save PrivValidator: filePath not set")
outFile := privVal.filePath
if outFile == "" {
panic("Cannot save PrivValidator: filePath not set")
} }
jsonBytes, err := json.Marshal(privVal) jsonBytes, err := json.Marshal(privVal)
if err != nil { if err != nil {
// `@; BOOM!!!
cmn.PanicCrisis(err)
panic(err)
} }
err = cmn.WriteFileAtomic(privVal.filePath, jsonBytes, 0600)
err = cmn.WriteFileAtomic(outFile, jsonBytes, 0600)
if err != nil { if err != nil {
// `@; BOOM!!!
cmn.PanicCrisis(err)
panic(err)
} }
} }


Loading…
Cancel
Save