-
Notifications
You must be signed in to change notification settings - Fork 5
/
export.go
92 lines (87 loc) · 1.94 KB
/
export.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package sncli
import (
"github.com/jonhadfield/gosn-v2/cache"
)
type ExportConfig struct {
Session *cache.Session
Decrypted bool
File string
UseStdOut bool
}
type ImportConfig struct {
Session *cache.Session
File string
Format string
UseStdOut bool
Debug bool
}
//
// // Run will retrieve all items from SN directly, re-encrypt them with a new ItemsKey and write them to a file.
// func (i ExportConfig) Run() error {
// if !i.Session.Debug {
// prefix := HiWhite("exporting ")
//
// s := spinner.New(spinner.CharSets[14], 100*time.Millisecond, spinner.WithWriter(os.Stdout))
// if i.UseStdOut {
// s = spinner.New(spinner.CharSets[14], 100*time.Millisecond, spinner.WithWriter(os.Stderr))
// }
//
// s.Prefix = prefix
// s.Start()
//
// err := i.Session.Export(i.File)
//
// s.Stop()
//
// return err
// }
//
// return i.Session.Export(i.File)
// }
// func (i *ImportConfig) Run() (imported int, err error) {
// // populate DB
// gii := cache.SyncInput{
// Session: i.Session,
// }
//
// gio, err := Sync(gii, true)
// if err != nil {
// return imported, err
// }
//
// var syncTokens []cache.SyncToken
// if err = gio.DB.All(&syncTokens); err != nil {
// return imported, err
// }
// syncToken := ""
// if len(syncTokens) > 0 {
// syncToken = syncTokens[0].SyncToken
// }
// if err = gio.DB.Close(); err != nil {
// return imported, err
// }
//
// // request all items from SN
// var iItemsKey items.ItemsKey
// var iItems items.EncryptedItems
//
// iItems, iItemsKey, err = i.Session.Session.Import(i.File, syncToken, "")
// if err != nil {
// return 0, err
// }
//
// if iItemsKey.ItemsKey == "" {
// panic(fmt.Sprintf("iItemsKey.ItemsKey is empty for: '%s'", iItemsKey.UUID))
// }
//
// // push item and close db
// pii := cache.SyncInput{
// Session: i.Session,
// Close: true,
// }
//
// _, err = Sync(pii, true)
// imported = len(iItems)
//
// return imported, err
// }