Mercurial > mercurial > hgweb_golang.cgi
diff src/gf/gf.go @ 37:43adde439537
ver.up: gf.go
author | pyon@macmini |
---|---|
date | Tue, 26 Nov 2019 21:04:22 +0900 |
parents | a2e33e922a54 |
children |
line wrap: on
line diff
--- a/src/gf/gf.go Thu Nov 21 02:12:18 2019 +0900 +++ b/src/gf/gf.go Tue Nov 26 21:04:22 2019 +0900 @@ -1,7 +1,7 @@ /* -Last Change: 2019-11-21 Thu 02:11:35. +Last Change: 2019-11-25 月 13:55:58. - gf.go: Get Files (ver.0.6) + gf.go: Get Files (ver.0.7) ./gf.json: server & file list e.g. @@ -14,7 +14,8 @@ "mahjong.html", "gammon", "gammon/backgammon.html" - ] + ], + "Backup": false } TODO: @@ -33,9 +34,10 @@ "path" "path/filepath" "net/http" + "time" ) -const version = "0.6" +const version = "0.7" const defaultjson = "gf.json" const samplejson = `{ "Server": { @@ -45,7 +47,8 @@ "Files": [ "mahjong.html", "gammon/backgammon.html" - ] + ], + "Backup": false }` type SV struct { @@ -60,6 +63,7 @@ type GF struct { Server SV Files []string + Backup bool } type HO struct { // html object @@ -133,6 +137,30 @@ print_msg(fmt.Sprintf("%d files downloading", n)) } + if gf.Backup { + bkdir := "backup" + time.Now().Format("200601021504") + if err := os.Mkdir(bkdir, 0755); err != nil { + log.Fatal(err) + } + for _, f := range gf.Files { + file := path.Base(f) + if _, err := os.Stat(file); os.IsNotExist(err) { + continue + } + if err := os.Link(file, filepath.Join(bkdir, file)); err != nil { + log.Fatal(err) + } + } + files, err := ioutil.ReadDir(bkdir) + if err != nil { + log.Fatal(err) + } + if len(files) == 0 { + os.Remove(bkdir) + } + + } + ch := make(chan string) for _, f := range gf.Files { go http_gets(gf.Server.String(), f, ch)