mirror of
https://github.com/ipfs/kubo.git
synced 2025-07-01 19:24:14 +08:00
fix(ipfs2/init) datastore
This commit is contained in:

committed by
Juan Batiz-Benet

parent
542c2a2da3
commit
62fd9166ce
@ -86,28 +86,11 @@ func doInit(configRoot string, dspath string, force bool, nBitsForKeypair int) e
|
|||||||
}
|
}
|
||||||
cfg := new(config.Config)
|
cfg := new(config.Config)
|
||||||
|
|
||||||
if len(dspath) == 0 {
|
ds, err := datastoreConfig(dspath)
|
||||||
dspath, err = config.DataStorePath("")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
cfg.Datastore = ds
|
||||||
cfg.Datastore = config.Datastore{
|
|
||||||
Path: dspath,
|
|
||||||
Type: "leveldb",
|
|
||||||
}
|
|
||||||
|
|
||||||
// Construct the data store if missing
|
|
||||||
if err := os.MkdirAll(dspath, os.ModePerm); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check the directory is writeable
|
|
||||||
if f, err := os.Create(filepath.Join(dspath, "._check_writeable")); err == nil {
|
|
||||||
os.Remove(f.Name())
|
|
||||||
} else {
|
|
||||||
return errors.New("Datastore '" + dspath + "' is not writeable")
|
|
||||||
}
|
|
||||||
|
|
||||||
cfg.Identity = config.Identity{}
|
cfg.Identity = config.Identity{}
|
||||||
|
|
||||||
@ -162,3 +145,30 @@ func doInit(configRoot string, dspath string, force bool, nBitsForKeypair int) e
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func datastoreConfig(dspath string) (config.Datastore, error) {
|
||||||
|
ds := config.Datastore{}
|
||||||
|
if len(dspath) == 0 {
|
||||||
|
var err error
|
||||||
|
dspath, err = config.DataStorePath("")
|
||||||
|
if err != nil {
|
||||||
|
return ds, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ds.Path = dspath
|
||||||
|
ds.Type = "leveldb"
|
||||||
|
|
||||||
|
// Construct the data store if missing
|
||||||
|
if err := os.MkdirAll(dspath, os.ModePerm); err != nil {
|
||||||
|
return ds, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check the directory is writeable
|
||||||
|
if f, err := os.Create(filepath.Join(dspath, "._check_writeable")); err == nil {
|
||||||
|
os.Remove(f.Name())
|
||||||
|
} else {
|
||||||
|
return ds, errors.New("Datastore '" + dspath + "' is not writeable")
|
||||||
|
}
|
||||||
|
|
||||||
|
return ds, nil
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user