diff --git a/cmd/ipfs/init.go b/cmd/ipfs/init.go index d193b2bac..062889571 100644 --- a/cmd/ipfs/init.go +++ b/cmd/ipfs/init.go @@ -18,6 +18,7 @@ import ( peer "github.com/jbenet/go-ipfs/p2p/peer" repo "github.com/jbenet/go-ipfs/repo" config "github.com/jbenet/go-ipfs/repo/config" + "github.com/jbenet/go-ipfs/repo/fsrepo" u "github.com/jbenet/go-ipfs/util" debugerror "github.com/jbenet/go-ipfs/util/debugerror" ) @@ -99,7 +100,7 @@ func doInit(configRoot string, dspathOverride string, force bool, nBitsForKeypai return nil, debugerror.New("Couldn't get home directory path") } - if u.FileExists(configFilename) && !force { + if fsrepo.ConfigIsInitialized(configRoot) && !force { return nil, errCannotInitConfigExists } diff --git a/repo/fsrepo/fsrepo.go b/repo/fsrepo/fsrepo.go new file mode 100644 index 000000000..1a6f51f37 --- /dev/null +++ b/repo/fsrepo/fsrepo.go @@ -0,0 +1,18 @@ +package fsrepo + +import ( + config "github.com/jbenet/go-ipfs/repo/config" + util "github.com/jbenet/go-ipfs/util" +) + +// ConfigIsInitialized returns true if the config exists in provided |path|. +func ConfigIsInitialized(path string) bool { + configFilename, err := config.Filename(path) + if err != nil { + return false + } + if !util.FileExists(configFilename) { + return false + } + return true +}