-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackups.go
53 lines (43 loc) · 930 Bytes
/
backups.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
package main
import (
"os"
"strconv"
"sync"
"time"
)
var last_backup_name = ""
var mutex_backup sync.Mutex
func save_backup() string {
mutex_backup.Lock()
if last_backup_name != "" {
os.Remove(last_backup_name)
}
t := "backup " + time.Now().Format("2006-01-02")
last_backup_name = t
maindb.save(t)
caba_log("SAVED BACKUP TO " + t)
mutex_backup.Unlock()
return t
}
func save_backup_async() {
mutex_backup.Lock()
t := "backup " + time.Now().Format("2006-01-02") + "-"
for i := 0; ; i++ {
j := strconv.Itoa(i)
if _, err := os.Stat(t + j); err != nil {
t += j
break
}
}
last_backup_name = t
maindb.save(t)
caba_log("SAVED BACKUP TO " + t)
mutex_backup.Unlock()
}
func load_backup_file(fname string) {
mutex_backup.Lock()
maindb.update(fname)
maindb.save(maindb.name)
caba_log("LOADED BACKUP FROM " + fname)
mutex_backup.Unlock()
}