create new dir fix

This commit is contained in:
Gregory Bednov 2025-09-17 21:57:46 +03:00
commit f65d0d1ee1
4 changed files with 22 additions and 13 deletions

View file

@ -252,18 +252,23 @@ func UpdateGenesisJson(nodeInfo p2p.NodeInfo, v *viper.Viper, defaultConfigDirec
} }
} }
func InitGenesis(chainName, defaultConfigPath string) (*cfg.Config, *viper.Viper) { func InitGenesis(chainName, defaultConfigPath string) (*cfg.Config, *viper.Viper, error) {
config := cfg.DefaultConfig() config := cfg.DefaultConfig()
config.RootDir = filepath.Dir(filepath.Dir(defaultConfigPath)) config.RootDir = filepath.Dir(filepath.Dir(defaultConfigPath))
nodeinfo := p2p.DefaultNodeInfo{} // Создаём директорию, если её нет
viper := WriteConfig(config, &defaultConfigPath, nodeinfo) if err := os.MkdirAll(config.RootDir, 0o755); err != nil {
if err := InitTendermintFiles(config, true, chainName); err != nil { return nil, nil, fmt.Errorf("failed to create config directory %s: %w", config.RootDir, err)
fmt.Fprintf(os.Stderr, "Failed to init files: %v\n", err)
panic(err)
} }
return config, viper nodeinfo := p2p.DefaultNodeInfo{}
viper := WriteConfig(config, &defaultConfigPath, nodeinfo)
if err := InitTendermintFiles(config, true, chainName); err != nil {
return nil, nil, fmt.Errorf("failed to init tendermint files: %w", err)
}
return config, viper, nil
} }
func InitJoiner(chainName, defaultConfigPath, path string) error { func InitJoiner(chainName, defaultConfigPath, path string) error {

View file

@ -18,7 +18,11 @@ var initCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
switch args[0] { switch args[0] {
case "genesis": case "genesis":
config, viper := cfg.InitGenesis(chainName, defaultConfigPath) config, viper, err := cfg.InitGenesis(chainName, defaultConfigPath)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v", err)
panic(err)
}
nodeinfo, err := blockchain.GetNodeInfo(config, dbPath) nodeinfo, err := blockchain.GetNodeInfo(config, dbPath)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v", err) fmt.Fprintf(os.Stderr, "Error: %v", err)
@ -30,14 +34,14 @@ var initCmd = &cobra.Command{
case "join": case "join":
if len(args) < 2 { if len(args) < 2 {
fmt.Fprintln(os.Stderr, "Укажите путь к genesis.json") fmt.Fprintln(os.Stderr, "Укажите путь к genesis.json")
os.Exit(1) return
} }
cfg.InitJoiner(chainName, defaultConfigPath, args[1]) cfg.InitJoiner(chainName, defaultConfigPath, args[1])
fmt.Println("Joiner node initialized.") fmt.Println("Joiner node initialized.")
default: default:
fmt.Fprintf(os.Stderr, "Неизвестный режим init: %s\n", args[0]) fmt.Fprintf(os.Stderr, "Неизвестный режим init: %s\n", args[0])
os.Exit(1) return
} }
}, },
} }

View file

@ -44,7 +44,7 @@ var rootCmd = &cobra.Command{
По умолчанию файл конфигурации ищется по пути: %s По умолчанию файл конфигурации ищется по пути: %s
`, err, defaultConfigPath) `, err, defaultConfigPath)
os.Exit(1) return
} }
config, err := cfg.ReadConfig(defaultConfigPath) config, err := cfg.ReadConfig(defaultConfigPath)
@ -70,7 +70,7 @@ var rootCmd = &cobra.Command{
func Execute() { func Execute() {
if err := rootCmd.Execute(); err != nil { if err := rootCmd.Execute(); err != nil {
fmt.Fprintf(os.Stderr, "ошибка: %v\n", err) fmt.Fprintf(os.Stderr, "ошибка: %v\n", err)
os.Exit(1) return
} }
} }

View file

@ -26,7 +26,7 @@ var testYggdrasilCmd = &cobra.Command{
v, err := cfg.LoadViperConfig(defaultConfigPath) v, err := cfg.LoadViperConfig(defaultConfigPath)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "не удалось прочитать конфигурацию viper: %v", err) fmt.Fprintf(os.Stderr, "не удалось прочитать конфигурацию viper: %v", err)
os.Exit(1) return err
} }
config, err := cfg.ReadConfig(defaultConfigPath) config, err := cfg.ReadConfig(defaultConfigPath)
if err != nil { if err != nil {