github.com/flanksource/konfigadm@v0.12.0/cmd/minify.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 6 log "github.com/sirupsen/logrus" 7 8 "github.com/spf13/cobra" 9 "gopkg.in/flanksource/yaml.v3" 10 ) 11 12 var primitive bool 13 var bash bool 14 var ( 15 Minify = cobra.Command{ 16 Use: "minify", 17 Short: "Resolve all lookups and dependencies and export a single config file", 18 Args: cobra.MinimumNArgs(0), 19 Run: func(cmd *cobra.Command, args []string) { 20 cfg := GetConfig(cmd, args) 21 fs, commands, err := cfg.ApplyPhases() 22 if err != nil { 23 log.Fatalf("Error applying phases %s\n", err) 24 } 25 26 if primitive { 27 data, _ := yaml.Marshal(map[string]interface{}{ 28 "filesystem": fs, 29 "commands": commands, 30 }) 31 fmt.Println(string(data)) 32 } else if bash { 33 if out, err := cfg.ToBash(); err != nil { 34 log.Fatalf("Error converting to bas: %v", err) 35 } else { 36 fmt.Println(out) 37 } 38 } else { 39 data, _ := yaml.Marshal(cfg) 40 fmt.Println(string(data)) 41 42 } 43 }, 44 } 45 ) 46 47 func init() { 48 Minify.Flags().BoolVar(&primitive, "primitive", false, "Minify down to primitive level of commands and files only") 49 Minify.Flags().BoolVar(&bash, "bash", false, "Export a single bash file with base64 encoded files") 50 }