mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-29 22:26:15 -06:00
review changes
This commit is contained in:
parent
61149178c8
commit
2f44633cde
4 changed files with 39 additions and 39 deletions
|
|
@ -66,14 +66,14 @@ func (e *exporter) accountEncode(ctx context.Context, f *os.File, a *transmodel.
|
||||||
//
|
//
|
||||||
// Beware, the 'type' key on the passed interface should already have been set, since simpleEncode won't know
|
// Beware, the 'type' key on the passed interface should already have been set, since simpleEncode won't know
|
||||||
// what type it is! If you try to decode stuff you've encoded with a missing type key, you're going to have a bad time.
|
// what type it is! If you try to decode stuff you've encoded with a missing type key, you're going to have a bad time.
|
||||||
func (e *exporter) simpleEncode(ctx context.Context, f *os.File, i interface{}, id string) error {
|
func (e *exporter) simpleEncode(ctx context.Context, file *os.File, i interface{}, id string) error {
|
||||||
_, alreadyWritten := e.writtenIDs[id]
|
_, alreadyWritten := e.writtenIDs[id]
|
||||||
if alreadyWritten {
|
if alreadyWritten {
|
||||||
// this exporter has already exported an entry with this ID, no need to do it twice
|
// this exporter has already exported an entry with this ID, no need to do it twice
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
err := json.NewEncoder(f).Encode(i)
|
err := json.NewEncoder(file).Encode(i)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("simpleEncode: error encoding entry with id %s: %s", id, err)
|
return fmt.Errorf("simpleEncode: error encoding entry with id %s: %s", id, err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import (
|
||||||
transmodel "github.com/superseriousbusiness/gotosocial/internal/trans/model"
|
transmodel "github.com/superseriousbusiness/gotosocial/internal/trans/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, f *os.File) ([]*transmodel.Account, error) {
|
func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, file *os.File) ([]*transmodel.Account, error) {
|
||||||
// select using the 'where' we've been provided
|
// select using the 'where' we've been provided
|
||||||
accounts := []*transmodel.Account{}
|
accounts := []*transmodel.Account{}
|
||||||
if err := e.db.GetWhere(ctx, where, &accounts); err != nil {
|
if err := e.db.GetWhere(ctx, where, &accounts); err != nil {
|
||||||
|
|
@ -34,7 +34,7 @@ func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, f *os.F
|
||||||
|
|
||||||
// write any accounts found to file
|
// write any accounts found to file
|
||||||
for _, a := range accounts {
|
for _, a := range accounts {
|
||||||
if err := e.accountEncode(ctx, f, a); err != nil {
|
if err := e.accountEncode(ctx, file, a); err != nil {
|
||||||
return nil, fmt.Errorf("exportAccounts: error encoding account: %s", err)
|
return nil, fmt.Errorf("exportAccounts: error encoding account: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +42,7 @@ func (e *exporter) exportAccounts(ctx context.Context, where []db.Where, f *os.F
|
||||||
return accounts, nil
|
return accounts, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Account, f *os.File) ([]*transmodel.Block, error) {
|
func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Account, file *os.File) ([]*transmodel.Block, error) {
|
||||||
blocksUnique := make(map[string]*transmodel.Block)
|
blocksUnique := make(map[string]*transmodel.Block)
|
||||||
|
|
||||||
// for each account we want to export both where it's blocking and where it's blocked
|
// for each account we want to export both where it's blocking and where it's blocked
|
||||||
|
|
@ -55,7 +55,7 @@ func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Acco
|
||||||
}
|
}
|
||||||
for _, b := range blocking {
|
for _, b := range blocking {
|
||||||
b.Type = transmodel.TransBlock
|
b.Type = transmodel.TransBlock
|
||||||
if err := e.simpleEncode(ctx, f, b, b.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, b, b.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportBlocks: error encoding block owned by account %s: %s", a.ID, err)
|
return nil, fmt.Errorf("exportBlocks: error encoding block owned by account %s: %s", a.ID, err)
|
||||||
}
|
}
|
||||||
blocksUnique[b.ID] = b
|
blocksUnique[b.ID] = b
|
||||||
|
|
@ -69,7 +69,7 @@ func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Acco
|
||||||
}
|
}
|
||||||
for _, b := range blocked {
|
for _, b := range blocked {
|
||||||
b.Type = transmodel.TransBlock
|
b.Type = transmodel.TransBlock
|
||||||
if err := e.simpleEncode(ctx, f, b, b.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, b, b.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportBlocks: error encoding block targeting account %s: %s", a.ID, err)
|
return nil, fmt.Errorf("exportBlocks: error encoding block targeting account %s: %s", a.ID, err)
|
||||||
}
|
}
|
||||||
blocksUnique[b.ID] = b
|
blocksUnique[b.ID] = b
|
||||||
|
|
@ -85,7 +85,7 @@ func (e *exporter) exportBlocks(ctx context.Context, accounts []*transmodel.Acco
|
||||||
return blocks, nil
|
return blocks, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *exporter) exportDomainBlocks(ctx context.Context, f *os.File) ([]*transmodel.DomainBlock, error) {
|
func (e *exporter) exportDomainBlocks(ctx context.Context, file *os.File) ([]*transmodel.DomainBlock, error) {
|
||||||
domainBlocks := []*transmodel.DomainBlock{}
|
domainBlocks := []*transmodel.DomainBlock{}
|
||||||
|
|
||||||
if err := e.db.GetAll(ctx, &domainBlocks); err != nil {
|
if err := e.db.GetAll(ctx, &domainBlocks); err != nil {
|
||||||
|
|
@ -94,7 +94,7 @@ func (e *exporter) exportDomainBlocks(ctx context.Context, f *os.File) ([]*trans
|
||||||
|
|
||||||
for _, b := range domainBlocks {
|
for _, b := range domainBlocks {
|
||||||
b.Type = transmodel.TransDomainBlock
|
b.Type = transmodel.TransDomainBlock
|
||||||
if err := e.simpleEncode(ctx, f, b, b.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, b, b.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportBlocks: error encoding domain block: %s", err)
|
return nil, fmt.Errorf("exportBlocks: error encoding domain block: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -102,7 +102,7 @@ func (e *exporter) exportDomainBlocks(ctx context.Context, f *os.File) ([]*trans
|
||||||
return domainBlocks, nil
|
return domainBlocks, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Account, f *os.File) ([]*transmodel.Follow, error) {
|
func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Account, file *os.File) ([]*transmodel.Follow, error) {
|
||||||
followsUnique := make(map[string]*transmodel.Follow)
|
followsUnique := make(map[string]*transmodel.Follow)
|
||||||
|
|
||||||
// for each account we want to export both where it's following and where it's followed
|
// for each account we want to export both where it's following and where it's followed
|
||||||
|
|
@ -115,7 +115,7 @@ func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Acc
|
||||||
}
|
}
|
||||||
for _, follow := range following {
|
for _, follow := range following {
|
||||||
follow.Type = transmodel.TransFollow
|
follow.Type = transmodel.TransFollow
|
||||||
if err := e.simpleEncode(ctx, f, follow, follow.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, follow, follow.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportFollows: error encoding follow owned by account %s: %s", a.ID, err)
|
return nil, fmt.Errorf("exportFollows: error encoding follow owned by account %s: %s", a.ID, err)
|
||||||
}
|
}
|
||||||
followsUnique[follow.ID] = follow
|
followsUnique[follow.ID] = follow
|
||||||
|
|
@ -129,7 +129,7 @@ func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Acc
|
||||||
}
|
}
|
||||||
for _, follow := range followed {
|
for _, follow := range followed {
|
||||||
follow.Type = transmodel.TransFollow
|
follow.Type = transmodel.TransFollow
|
||||||
if err := e.simpleEncode(ctx, f, follow, follow.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, follow, follow.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportFollows: error encoding follow targeting account %s: %s", a.ID, err)
|
return nil, fmt.Errorf("exportFollows: error encoding follow targeting account %s: %s", a.ID, err)
|
||||||
}
|
}
|
||||||
followsUnique[follow.ID] = follow
|
followsUnique[follow.ID] = follow
|
||||||
|
|
@ -145,7 +145,7 @@ func (e *exporter) exportFollows(ctx context.Context, accounts []*transmodel.Acc
|
||||||
return follows, nil
|
return follows, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmodel.Account, f *os.File) ([]*transmodel.FollowRequest, error) {
|
func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmodel.Account, file *os.File) ([]*transmodel.FollowRequest, error) {
|
||||||
frsUnique := make(map[string]*transmodel.FollowRequest)
|
frsUnique := make(map[string]*transmodel.FollowRequest)
|
||||||
|
|
||||||
// for each account we want to export both where it's following and where it's followed
|
// for each account we want to export both where it's following and where it's followed
|
||||||
|
|
@ -158,7 +158,7 @@ func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmo
|
||||||
}
|
}
|
||||||
for _, fr := range requesting {
|
for _, fr := range requesting {
|
||||||
fr.Type = transmodel.TransFollowRequest
|
fr.Type = transmodel.TransFollowRequest
|
||||||
if err := e.simpleEncode(ctx, f, fr, fr.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, fr, fr.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportFollowRequests: error encoding follow request owned by account %s: %s", a.ID, err)
|
return nil, fmt.Errorf("exportFollowRequests: error encoding follow request owned by account %s: %s", a.ID, err)
|
||||||
}
|
}
|
||||||
frsUnique[fr.ID] = fr
|
frsUnique[fr.ID] = fr
|
||||||
|
|
@ -172,7 +172,7 @@ func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmo
|
||||||
}
|
}
|
||||||
for _, fr := range requested {
|
for _, fr := range requested {
|
||||||
fr.Type = transmodel.TransFollowRequest
|
fr.Type = transmodel.TransFollowRequest
|
||||||
if err := e.simpleEncode(ctx, f, fr, fr.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, fr, fr.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportFollowRequests: error encoding follow request targeting account %s: %s", a.ID, err)
|
return nil, fmt.Errorf("exportFollowRequests: error encoding follow request targeting account %s: %s", a.ID, err)
|
||||||
}
|
}
|
||||||
frsUnique[fr.ID] = fr
|
frsUnique[fr.ID] = fr
|
||||||
|
|
@ -188,7 +188,7 @@ func (e *exporter) exportFollowRequests(ctx context.Context, accounts []*transmo
|
||||||
return followRequests, nil
|
return followRequests, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *exporter) exportInstances(ctx context.Context, f *os.File) ([]*transmodel.Instance, error) {
|
func (e *exporter) exportInstances(ctx context.Context, file *os.File) ([]*transmodel.Instance, error) {
|
||||||
instances := []*transmodel.Instance{}
|
instances := []*transmodel.Instance{}
|
||||||
|
|
||||||
if err := e.db.GetAll(ctx, &instances); err != nil {
|
if err := e.db.GetAll(ctx, &instances); err != nil {
|
||||||
|
|
@ -197,7 +197,7 @@ func (e *exporter) exportInstances(ctx context.Context, f *os.File) ([]*transmod
|
||||||
|
|
||||||
for _, u := range instances {
|
for _, u := range instances {
|
||||||
u.Type = transmodel.TransInstance
|
u.Type = transmodel.TransInstance
|
||||||
if err := e.simpleEncode(ctx, f, u, u.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, u, u.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportInstances: error encoding instance: %s", err)
|
return nil, fmt.Errorf("exportInstances: error encoding instance: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -205,7 +205,7 @@ func (e *exporter) exportInstances(ctx context.Context, f *os.File) ([]*transmod
|
||||||
return instances, nil
|
return instances, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *exporter) exportUsers(ctx context.Context, f *os.File) ([]*transmodel.User, error) {
|
func (e *exporter) exportUsers(ctx context.Context, file *os.File) ([]*transmodel.User, error) {
|
||||||
users := []*transmodel.User{}
|
users := []*transmodel.User{}
|
||||||
|
|
||||||
if err := e.db.GetAll(ctx, &users); err != nil {
|
if err := e.db.GetAll(ctx, &users); err != nil {
|
||||||
|
|
@ -214,7 +214,7 @@ func (e *exporter) exportUsers(ctx context.Context, f *os.File) ([]*transmodel.U
|
||||||
|
|
||||||
for _, u := range users {
|
for _, u := range users {
|
||||||
u.Type = transmodel.TransUser
|
u.Type = transmodel.TransUser
|
||||||
if err := e.simpleEncode(ctx, f, u, u.ID); err != nil {
|
if err := e.simpleEncode(ctx, file, u, u.ID); err != nil {
|
||||||
return nil, fmt.Errorf("exportUsers: error encoding user: %s", err)
|
return nil, fmt.Errorf("exportUsers: error encoding user: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,19 +32,19 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
return errors.New("ExportMinimal: path empty")
|
return errors.New("ExportMinimal: path empty")
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.Create(path)
|
file, err := os.Create(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: couldn't export to %s: %s", path, err)
|
return fmt.Errorf("ExportMinimal: couldn't export to %s: %s", path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// export all local accounts we have in the database
|
// export all local accounts we have in the database
|
||||||
localAccounts, err := e.exportAccounts(ctx, []db.Where{{Key: "domain", Value: nil}}, f)
|
localAccounts, err := e.exportAccounts(ctx, []db.Where{{Key: "domain", Value: nil}}, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting accounts: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting accounts: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// export all blocks that relate to local accounts
|
// export all blocks that relate to local accounts
|
||||||
blocks, err := e.exportBlocks(ctx, localAccounts, f)
|
blocks, err := e.exportBlocks(ctx, localAccounts, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting blocks: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting blocks: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -54,7 +54,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
for _, b := range blocks {
|
for _, b := range blocks {
|
||||||
_, alreadyWritten := e.writtenIDs[b.AccountID]
|
_, alreadyWritten := e.writtenIDs[b.AccountID]
|
||||||
if !alreadyWritten {
|
if !alreadyWritten {
|
||||||
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.AccountID}}, f)
|
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.AccountID}}, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting block owner account: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting block owner account: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -62,7 +62,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
|
|
||||||
_, alreadyWritten = e.writtenIDs[b.TargetAccountID]
|
_, alreadyWritten = e.writtenIDs[b.TargetAccountID]
|
||||||
if !alreadyWritten {
|
if !alreadyWritten {
|
||||||
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.TargetAccountID}}, f)
|
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: b.TargetAccountID}}, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting block target account: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting block target account: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -70,7 +70,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// export all follows that relate to local accounts
|
// export all follows that relate to local accounts
|
||||||
follows, err := e.exportFollows(ctx, localAccounts, f)
|
follows, err := e.exportFollows(ctx, localAccounts, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting follows: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting follows: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -80,7 +80,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
for _, follow := range follows {
|
for _, follow := range follows {
|
||||||
_, alreadyWritten := e.writtenIDs[follow.AccountID]
|
_, alreadyWritten := e.writtenIDs[follow.AccountID]
|
||||||
if !alreadyWritten {
|
if !alreadyWritten {
|
||||||
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.AccountID}}, f)
|
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.AccountID}}, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting follow owner account: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting follow owner account: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -88,7 +88,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
|
|
||||||
_, alreadyWritten = e.writtenIDs[follow.TargetAccountID]
|
_, alreadyWritten = e.writtenIDs[follow.TargetAccountID]
|
||||||
if !alreadyWritten {
|
if !alreadyWritten {
|
||||||
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.TargetAccountID}}, f)
|
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: follow.TargetAccountID}}, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting follow target account: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting follow target account: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -96,17 +96,17 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// export all follow requests that relate to local accounts
|
// export all follow requests that relate to local accounts
|
||||||
frs, err := e.exportFollowRequests(ctx, localAccounts, f)
|
followRequests, err := e.exportFollowRequests(ctx, localAccounts, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting follow requests: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting follow requests: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// for each follow request, make sure we've written out the account owning it, or targeted by it --
|
// for each follow request, make sure we've written out the account owning it, or targeted by it --
|
||||||
// this might include non-local accounts, but we need these so we don't lose anything
|
// this might include non-local accounts, but we need these so we don't lose anything
|
||||||
for _, fr := range frs {
|
for _, fr := range followRequests {
|
||||||
_, alreadyWritten := e.writtenIDs[fr.AccountID]
|
_, alreadyWritten := e.writtenIDs[fr.AccountID]
|
||||||
if !alreadyWritten {
|
if !alreadyWritten {
|
||||||
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.AccountID}}, f)
|
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.AccountID}}, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting follow request owner account: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting follow request owner account: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -114,7 +114,7 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
|
|
||||||
_, alreadyWritten = e.writtenIDs[fr.TargetAccountID]
|
_, alreadyWritten = e.writtenIDs[fr.TargetAccountID]
|
||||||
if !alreadyWritten {
|
if !alreadyWritten {
|
||||||
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.TargetAccountID}}, f)
|
_, err := e.exportAccounts(ctx, []db.Where{{Key: "id", Value: fr.TargetAccountID}}, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting follow request target account: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting follow request target account: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -122,17 +122,17 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// export all domain blocks
|
// export all domain blocks
|
||||||
if _, err := e.exportDomainBlocks(ctx, f); err != nil {
|
if _, err := e.exportDomainBlocks(ctx, file); err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting domain blocks: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting domain blocks: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// export all users
|
// export all users
|
||||||
if _, err := e.exportUsers(ctx, f); err != nil {
|
if _, err := e.exportUsers(ctx, file); err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting users: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting users: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// export all instances
|
// export all instances
|
||||||
if _, err := e.exportInstances(ctx, f); err != nil {
|
if _, err := e.exportInstances(ctx, file); err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting instances: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting instances: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -142,9 +142,9 @@ func (e *exporter) ExportMinimal(ctx context.Context, path string) error {
|
||||||
Not: true,
|
Not: true,
|
||||||
Value: nil,
|
Value: nil,
|
||||||
}}
|
}}
|
||||||
if _, err := e.exportAccounts(ctx, whereSuspended, f); err != nil {
|
if _, err := e.exportAccounts(ctx, whereSuspended, file); err != nil {
|
||||||
return fmt.Errorf("ExportMinimal: error exporting suspended accounts: %s", err)
|
return fmt.Errorf("ExportMinimal: error exporting suspended accounts: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return neatClose(f)
|
return neatClose(file)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,12 @@ func (i *importer) Import(ctx context.Context, path string) error {
|
||||||
return errors.New("Export: path empty")
|
return errors.New("Export: path empty")
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.Open(path)
|
file, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Import: couldn't export to %s: %s", path, err)
|
return fmt.Errorf("Import: couldn't export to %s: %s", path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
decoder := json.NewDecoder(f)
|
decoder := json.NewDecoder(file)
|
||||||
decoder.UseNumber()
|
decoder.UseNumber()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
|
@ -48,7 +48,7 @@ func (i *importer) Import(ctx context.Context, path string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
i.log.Infof("Import: reached end of file")
|
i.log.Infof("Import: reached end of file")
|
||||||
return neatClose(f)
|
return neatClose(file)
|
||||||
}
|
}
|
||||||
return fmt.Errorf("Import: error decoding in readLoop: %s", err)
|
return fmt.Errorf("Import: error decoding in readLoop: %s", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue