aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorLaria Carolin Chabowski <laria@laria.me>2017-11-28 22:38:21 +0100
committerLaria Carolin Chabowski <laria@laria.me>2017-11-28 22:38:21 +0100
commit0a4929876c1606abf2a599c6561affba368ab5fb (patch)
tree4c352b218e5bfcd7dd94b1b090643b0b7be2ccd6 /main.go
parent61b52fd69f2750ad55a2740cae17f8b629c7da69 (diff)
downloadpetrific-0a4929876c1606abf2a599c6561affba368ab5fb.tar.gz
petrific-0a4929876c1606abf2a599c6561affba368ab5fb.tar.bz2
petrific-0a4929876c1606abf2a599c6561affba368ab5fb.zip
Add caching
Diffstat (limited to 'main.go')
-rw-r--r--main.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/main.go b/main.go
index 11202f3..5ea627f 100644
--- a/main.go
+++ b/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "code.laria.me/petrific/cache"
"code.laria.me/petrific/config"
"code.laria.me/petrific/storage"
"code.laria.me/petrific/storage/registry"
@@ -44,6 +45,7 @@ var (
var conf config.Config
var objectstore storage.Storage
+var id_cache cache.Cache = cache.NopCache{}
func main() {
os.Exit(Main())
@@ -64,6 +66,11 @@ func Main() int {
}
defer objectstore.Close()
+ if !loadCache(conf) {
+ return 1
+ }
+ defer id_cache.Close()
+
remaining := make([]string, 0)
for _, arg := range flag.Args() {
if arg != "" {
@@ -84,6 +91,22 @@ func Main() int {
return cmd(remaining[1:])
}
+func loadCache(conf config.Config) bool {
+ if conf.CachePath == "" {
+ return true
+ }
+
+ file_cache := cache.NewFileCache(config.ExpandTilde(conf.CachePath))
+ if err := file_cache.Load(); err != nil {
+ fmt.Fprintf(os.Stderr, "Loading cache %s: %s", conf.CachePath, err)
+ return false
+ }
+
+ id_cache = file_cache
+
+ return true
+}
+
func loadConfig() bool {
var err error
conf, err = config.LoadConfig(*flagConfPath)