-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfiles.go
More file actions
37 lines (31 loc) · 830 Bytes
/
Copy pathfiles.go
File metadata and controls
37 lines (31 loc) · 830 Bytes
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
package main
import (
"os"
"path"
)
type DataDir struct{ dirName string }
func (d *DataDir) baseFile() string { return path.Join(d.dirName, "base.zip") }
func (d *DataDir) eTagFile() string { return path.Join(d.dirName, "etag.txt") }
func (d *DataDir) tmpBaseFile() string { return d.baseFile() + ".tmp" }
func (d *DataDir) tmpETagFile() string { return d.eTagFile() + ".tmp" }
func (d *DataDir) cleanTemps() {
os.Remove(d.tmpBaseFile())
os.Remove(d.tmpETagFile())
}
func (d *DataDir) moveTemps() {
os.Remove(d.baseFile())
os.Remove(d.eTagFile())
os.Rename(d.tmpBaseFile(), d.baseFile())
os.Rename(d.tmpETagFile(), d.eTagFile())
}
func FileExists(filename string) (ok bool, err error) {
_, err = os.Stat(filename)
if err == nil {
ok = true
}
if os.IsNotExist(err) {
ok = false
err = nil
}
return
}