mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 14:52:17 +00:00
Merge pull request #1318 from tendermint/bucky/testnet-cmd-fix
testnet cmd: ensure config dir exists. closes #1290
This commit is contained in:
commit
ff1ec0260e
@ -75,15 +75,16 @@ func testnetFiles(cmd *cobra.Command, args []string) {
|
||||
|
||||
// Initialize per-machine core directory
|
||||
func initMachCoreDirectory(base, mach string) error {
|
||||
// Create priv_validator.json file if not present
|
||||
defaultConfig := cfg.DefaultBaseConfig()
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
|
||||
// Create priv_validator.json file if not present
|
||||
defaultConfig := cfg.DefaultBaseConfig()
|
||||
ensurePrivValidator(filepath.Join(dir, defaultConfig.PrivValidator))
|
||||
ensurePrivValidator(privValPath)
|
||||
return nil
|
||||
|
||||
}
|
||||
|
@ -98,6 +98,7 @@ type PrivValidator interface {
|
||||
// PrivValidatorFS implements PrivValidator using data persisted to disk
|
||||
// to prevent double signing. The Signer itself can be mutated to use
|
||||
// something besides the default, for instance a hardware signer.
|
||||
// NOTE: the directory containing the privVal.filePath must already exist.
|
||||
type PrivValidatorFS struct {
|
||||
Address Address `json:"address"`
|
||||
PubKey crypto.PubKey `json:"pub_key"`
|
||||
@ -217,18 +218,17 @@ 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)
|
||||
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 {
|
||||
// `@; BOOM!!!
|
||||
cmn.PanicCrisis(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user