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  }