func TestConfig(t *testing.T) { resultConfig := restic.Config{} save := func(tpe restic.FileType, arg interface{}) (restic.ID, error) { Assert(t, tpe == restic.ConfigFile, "wrong backend type: got %v, wanted %v", tpe, restic.ConfigFile) cfg := arg.(restic.Config) resultConfig = cfg return restic.ID{}, nil } cfg1, err := restic.CreateConfig() OK(t, err) _, err = saver(save).SaveJSONUnpacked(restic.ConfigFile, cfg1) load := func(tpe restic.FileType, id restic.ID, arg interface{}) error { Assert(t, tpe == restic.ConfigFile, "wrong backend type: got %v, wanted %v", tpe, restic.ConfigFile) cfg := arg.(*restic.Config) *cfg = resultConfig return nil } cfg2, err := restic.LoadConfig(loader(load)) OK(t, err) Assert(t, cfg1 == cfg2, "configs aren't equal: %v != %v", cfg1, cfg2) }
// Init creates a new master key with the supplied password, initializes and // saves the repository config. func (r *Repository) Init(password string) error { has, err := r.be.Test(restic.ConfigFile, "") if err != nil { return err } if has { return errors.New("repository master key and config already initialized") } cfg, err := restic.CreateConfig() if err != nil { return err } return r.init(password, cfg) }