diff options
author | Laria Carolin Chabowski <laria@laria.me> | 2017-11-28 22:38:21 +0100 |
---|---|---|
committer | Laria Carolin Chabowski <laria@laria.me> | 2017-11-28 22:38:21 +0100 |
commit | 0a4929876c1606abf2a599c6561affba368ab5fb (patch) | |
tree | 4c352b218e5bfcd7dd94b1b090643b0b7be2ccd6 /main.go | |
parent | 61b52fd69f2750ad55a2740cae17f8b629c7da69 (diff) | |
download | petrific-0a4929876c1606abf2a599c6561affba368ab5fb.tar.gz petrific-0a4929876c1606abf2a599c6561affba368ab5fb.tar.bz2 petrific-0a4929876c1606abf2a599c6561affba368ab5fb.zip |
Add caching
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -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) |