Skip to content

Commit

Permalink
Control TUI, port, config with env vars
Browse files Browse the repository at this point in the history
  • Loading branch information
F1bonacc1 committed Feb 20, 2023
1 parent 90a3654 commit 757937f
Showing 1 changed file with 39 additions and 2 deletions.
41 changes: 39 additions & 2 deletions src/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@ package cmd
import (
"github.com/f1bonacc1/process-compose/src/api"
"github.com/f1bonacc1/process-compose/src/loader"
"github.com/rs/zerolog/log"
"github.com/spf13/cobra"
"os"
"strconv"
"strings"
)

var (
Expand All @@ -17,12 +20,19 @@ var (
Use: "process-compose",
Short: "Processes scheduler and orchestrator",
Run: func(cmd *cobra.Command, args []string) {
if !cmd.Flags().Changed("tui") {
isTui = getTuiDefault()
}
api.StartHttpServer(!isTui, port)
runProject([]string{}, false)
},
}
)

const (
defaultPortNum = 8080
)

// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by main.main(). It only needs to happen once to the rootCmd.
func Execute() {
Expand All @@ -36,7 +46,34 @@ func init() {
opts = &loader.LoaderOptions{
FileNames: []string{},
}

rootCmd.Flags().BoolVarP(&isTui, "tui", "t", true, "disable tui (-t=false)")
rootCmd.PersistentFlags().IntVarP(&port, "port", "p", 8080, "port number")
rootCmd.PersistentFlags().StringArrayVarP(&opts.FileNames, "config", "f", []string{}, "path to config files to load")
rootCmd.PersistentFlags().IntVarP(&port, "port", "p", getPortDefault(), "port number")
rootCmd.PersistentFlags().StringArrayVarP(&opts.FileNames, "config", "f", getConfigDefault(), "path to config files to load")
}

func getTuiDefault() bool {
_, found := os.LookupEnv("PC_DISABLE_TUI")
return !found
}

func getPortDefault() int {
val, found := os.LookupEnv("PC_PORT_NUM")
if found {
port, err := strconv.Atoi(val)
if err != nil {
log.Fatal().Msgf("Invalid port number: %s", val)
return defaultPortNum
}
return port
}
return defaultPortNum
}

func getConfigDefault() []string {
val, found := os.LookupEnv("PC_CONFIG_FILES")
if found {
return strings.Split(val, ",")
}
return []string{}
}

0 comments on commit 757937f

Please sign in to comment.