[#747] neofs-adm: Support ~ for paths in config

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
Pavel Karpy 2021-08-04 20:47:58 +03:00 committed by Alex Vanin
parent b5cadff2c3
commit aa0955f15d
3 changed files with 26 additions and 2 deletions

View file

@ -0,0 +1,24 @@
package config
import (
"os"
"path/filepath"
"strings"
)
// ResolveHomePath replaces leading `~`
// with home directory.
//
// Does nothing if path does not start
// with contain `~`.
func ResolveHomePath(path string) string {
homeDir, _ := os.UserHomeDir()
if path == "~" {
path = homeDir
} else if strings.HasPrefix(path, "~/") {
path = filepath.Join(homeDir, path[2:])
}
return path
}

View file

@ -36,7 +36,7 @@ func generateAlphabetCreds(cmd *cobra.Command, args []string) error {
return errors.New("size must be > 0") return errors.New("size must be > 0")
} }
walletDir := viper.GetString(alphabetWalletsFlag) walletDir := config.ResolveHomePath(viper.GetString(alphabetWalletsFlag))
pwds, err := initializeWallets(walletDir, int(size)) pwds, err := initializeWallets(walletDir, int(size))
if err != nil { if err != nil {
return err return err

View file

@ -90,7 +90,7 @@ func initializeSideChainCmd(cmd *cobra.Command, args []string) error {
} }
func newInitializeContext(cmd *cobra.Command, v *viper.Viper) (*initializeContext, error) { func newInitializeContext(cmd *cobra.Command, v *viper.Viper) (*initializeContext, error) {
walletDir := v.GetString(alphabetWalletsFlag) walletDir := config.ResolveHomePath(viper.GetString(alphabetWalletsFlag))
wallets, err := openAlphabetWallets(walletDir) wallets, err := openAlphabetWallets(walletDir)
if err != nil { if err != nil {
return nil, err return nil, err