aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorLaria Carolin Chabowski <laria@laria.me>2017-12-10 15:43:58 +0100
committerLaria Carolin Chabowski <laria@laria.me>2017-12-11 08:13:52 +0100
commit2cfd9f146d042a1c30176ad91fea730df439704d (patch)
treec3df2c321b8b8b5d409d2e2f4601da5af0d117a5 /main.go
parent0a4929876c1606abf2a599c6561affba368ab5fb (diff)
downloadpetrific-2cfd9f146d042a1c30176ad91fea730df439704d.tar.gz
petrific-2cfd9f146d042a1c30176ad91fea730df439704d.tar.bz2
petrific-2cfd9f146d042a1c30176ad91fea730df439704d.zip
Eliminate global variables
Diffstat (limited to 'main.go')
-rw-r--r--main.go61
1 files changed, 6 insertions, 55 deletions
diff --git a/main.go b/main.go
index 5ea627f..b6b541b 100644
--- a/main.go
+++ b/main.go
@@ -1,16 +1,12 @@
package main
import (
- "code.laria.me/petrific/cache"
- "code.laria.me/petrific/config"
- "code.laria.me/petrific/storage"
- "code.laria.me/petrific/storage/registry"
"flag"
"fmt"
"os"
)
-type subcmd func(args []string) int
+type subcmd func(env *Env, args []string) int
var subcmds = map[string]subcmd{
"write-dir": WriteDir,
@@ -43,10 +39,6 @@ var (
flagStorage = flag.String("storage", "", "Operate on this storage instead of the default one")
)
-var conf config.Config
-var objectstore storage.Storage
-var id_cache cache.Cache = cache.NopCache{}
-
func main() {
os.Exit(Main())
}
@@ -61,15 +53,13 @@ func Main() int {
flag.PrintDefaults()
}
flag.Parse()
- if !loadConfig() {
- return 1
- }
- defer objectstore.Close()
- if !loadCache(conf) {
+ env, err := NewEnv(*flagConfPath, *flagStorage)
+ if err != nil {
+ fmt.Fprintln(os.Stderr, err)
return 1
}
- defer id_cache.Close()
+ defer env.Close()
remaining := make([]string, 0)
for _, arg := range flag.Args() {
@@ -88,44 +78,5 @@ func Main() int {
return 1
}
- 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)
- if err != nil {
- fmt.Fprintf(os.Stderr, "Failed reading config: %s\n", err)
- return false
- }
-
- storageName := *flagStorage
- if storageName == "" {
- storageName = conf.DefaultStorage
- }
-
- s, err := registry.LoadStorage(conf, storageName)
- if err != nil {
- fmt.Fprintln(os.Stderr, err)
- return false
- }
-
- objectstore = s
- return true
+ return cmd(env, remaining[1:])
}