github.com/swiftstack/proxyfs@v0.0.0-20201223034610-5434d919416e/pfsconfjson/main.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "fmt" 7 "log" 8 "os" 9 10 "github.com/swiftstack/ProxyFS/conf" 11 "github.com/swiftstack/ProxyFS/transitions" 12 ) 13 14 func main() { 15 var ( 16 args []string 17 confErr error 18 confMap conf.ConfMap 19 confMapJSON bytes.Buffer 20 confMapJSONPacked []byte 21 ) 22 23 args = os.Args[1:] 24 25 // Read in the program's os.Arg[1]-specified (and required) .conf file 26 if len(args) == 0 { 27 log.Fatalf("no .conf file specified") 28 } 29 30 confMap, confErr = conf.MakeConfMapFromFile(args[0]) 31 if nil != confErr { 32 log.Fatalf("failed to load config: %v", confErr) 33 } 34 35 // Update confMap with any extra os.Args supplied 36 confErr = confMap.UpdateFromStrings(args[1:]) 37 if nil != confErr { 38 log.Fatalf("failed to load config overrides: %v", confErr) 39 } 40 41 confErr = transitions.UpgradeConfMapIfNeeded(confMap) 42 if nil != confErr { 43 log.Fatalf("failed to upgrade config: %v", confErr) 44 } 45 46 confMapJSONPacked, _ = json.Marshal(confMap) 47 json.Indent(&confMapJSON, confMapJSONPacked, "", "\t") 48 49 fmt.Printf("%v\n", confMapJSON.String()) 50 }