Skip to content

Commit

Permalink
Issue: #126 - added ability to disable the HTTP server
Browse files Browse the repository at this point in the history
  • Loading branch information
F1bonacc1 committed Jan 13, 2024
1 parent d5aaa59 commit 5da3fdf
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 17 deletions.
16 changes: 12 additions & 4 deletions src/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"
"github.com/f1bonacc1/process-compose/src/admitter"
"github.com/f1bonacc1/process-compose/src/api"
"github.com/f1bonacc1/process-compose/src/app"
"github.com/f1bonacc1/process-compose/src/config"
"github.com/f1bonacc1/process-compose/src/loader"
"github.com/rs/zerolog"
Expand Down Expand Up @@ -35,7 +36,7 @@ func run(cmd *cobra.Command, args []string) error {
_ = logFile.Close()
}()
runner := getProjectRunner([]string{}, false, "", []string{})
api.StartHttpServer(!*pcFlags.Headless, *pcFlags.PortNum, runner)
startHttpServerIfEnabled(!*pcFlags.Headless, runner)
runProject(runner)
return nil
}
Expand All @@ -58,11 +59,12 @@ func init() {
nsAdmitter := &admitter.NamespaceAdmitter{}
opts.AddAdmitter(nsAdmitter)

rootCmd.Flags().BoolVarP(pcFlags.Headless, "tui", "t", *pcFlags.Headless, "enable TUI (-t=false) (env: "+config.TuiEnvVarName+")")
rootCmd.Flags().BoolVarP(pcFlags.Headless, "tui", "t", *pcFlags.Headless, "enable TUI (-t=false) (env: "+config.EnvVarNameTui+")")
rootCmd.PersistentFlags().BoolVar(pcFlags.NoServer, "no-server", *pcFlags.NoServer, "disable HTTP server (env: "+config.EnvVarNameNoServer+")")
rootCmd.Flags().BoolVarP(pcFlags.HideDisabled, "hide-disabled", "d", *pcFlags.HideDisabled, "hide disabled processes")
rootCmd.Flags().IntVarP(pcFlags.RefreshRate, "ref-rate", "r", *pcFlags.RefreshRate, "TUI refresh rate in seconds")
rootCmd.PersistentFlags().IntVarP(pcFlags.PortNum, "port", "p", *pcFlags.PortNum, "port number (env: "+config.PortEnvVarName+")")
rootCmd.Flags().StringArrayVarP(&opts.FileNames, "config", "f", config.GetConfigDefault(), "path to config files to load (env: "+config.ConfigEnvVarName+")")
rootCmd.PersistentFlags().IntVarP(pcFlags.PortNum, "port", "p", *pcFlags.PortNum, "port number (env: "+config.EnvVarNamePort+")")
rootCmd.Flags().StringArrayVarP(&opts.FileNames, "config", "f", config.GetConfigDefault(), "path to config files to load (env: "+config.EnvVarNameConfig+")")
rootCmd.Flags().StringArrayVarP(&nsAdmitter.EnabledNamespaces, "namespace", "n", nil, "run only specified namespaces (default all)")
rootCmd.PersistentFlags().StringVarP(pcFlags.LogFile, "log-file", "L", *pcFlags.LogFile, "Specify the log file path (env: "+config.LogPathEnvVarName+")")
rootCmd.Flags().AddFlag(commonFlags.Lookup("reverse"))
Expand Down Expand Up @@ -93,3 +95,9 @@ func setupLogger() *os.File {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
return file
}

func startHttpServerIfEnabled(useLogger bool, runner *app.ProjectRunner) {
if !*pcFlags.NoServer {
api.StartHttpServer(useLogger, *pcFlags.PortNum, runner)
}
}
5 changes: 2 additions & 3 deletions src/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ package cmd

import (
"fmt"
"os"
"github.com/f1bonacc1/process-compose/src/api"
"github.com/spf13/cobra"
"os"
)

// runCmd represents the up command
Expand Down Expand Up @@ -40,7 +39,7 @@ Command line arguments, provided after --, are passed to the PROCESS.`,
args,
)

api.StartHttpServer(false, *pcFlags.PortNum, runner)
startHttpServerIfEnabled(false, runner)
runProject(runner)
},
}
Expand Down
3 changes: 1 addition & 2 deletions src/cmd/up.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package cmd

import (
"github.com/f1bonacc1/process-compose/src/admitter"
"github.com/f1bonacc1/process-compose/src/api"
"github.com/spf13/cobra"
)

Expand All @@ -15,7 +14,7 @@ If one or more process names are passed as arguments,
will start them and their dependencies only`,
Run: func(cmd *cobra.Command, args []string) {
runner := getProjectRunner(args, *pcFlags.NoDependencies, "", []string{})
api.StartHttpServer(!*pcFlags.Headless, *pcFlags.PortNum, runner)
startHttpServerIfEnabled(!*pcFlags.Headless, runner)
runProject(runner)
},
}
Expand Down
11 changes: 7 additions & 4 deletions src/config/Flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ const (
)

const (
PortEnvVarName = "PC_PORT_NUM"
TuiEnvVarName = "PC_DISABLE_TUI"
ConfigEnvVarName = "PC_CONFIG_FILES"
EnvVarNamePort = "PC_PORT_NUM"
EnvVarNameTui = "PC_DISABLE_TUI"
EnvVarNameConfig = "PC_CONFIG_FILES"
EnvVarNameNoServer = "PC_NO_SERVER"
)

// Flags represents PC configuration flags.
Expand All @@ -47,13 +48,14 @@ type Flags struct {
HideDisabled *bool
SortColumn *string
IsReverseSort *bool
NoServer *bool
}

// NewFlags returns new configuration flags.
func NewFlags() *Flags {
return &Flags{
RefreshRate: intPtr(DefaultRefreshRate),
Headless: boolPtr(GetTuiDefault()),
Headless: boolPtr(getTuiDefault()),
PortNum: intPtr(getPortDefault()),
Address: strPtr(DefaultAddress),
LogLength: intPtr(DefaultLogLength),
Expand All @@ -65,6 +67,7 @@ func NewFlags() *Flags {
HideDisabled: boolPtr(false),
SortColumn: strPtr(DefaultSortColumn),
IsReverseSort: boolPtr(false),
NoServer: boolPtr(getNoServerDefault()),
}
}

Expand Down
13 changes: 9 additions & 4 deletions src/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,18 @@ func GetLogFilePath() string {
return filepath.Join(os.TempDir(), fmt.Sprintf("process-compose%s%s.log", userName, mode()))
}

func GetTuiDefault() bool {
_, found := os.LookupEnv(TuiEnvVarName)
func getTuiDefault() bool {
_, found := os.LookupEnv(EnvVarNameTui)
return !found
}

func getNoServerDefault() bool {
_, found := os.LookupEnv(EnvVarNameNoServer)
return found
}

func getPortDefault() int {
val, found := os.LookupEnv(PortEnvVarName)
val, found := os.LookupEnv(EnvVarNamePort)
if found {
port, err := strconv.Atoi(val)
if err != nil {
Expand All @@ -72,7 +77,7 @@ func getPortDefault() int {
}

func GetConfigDefault() []string {
val, found := os.LookupEnv(ConfigEnvVarName)
val, found := os.LookupEnv(EnvVarNameConfig)
if found {
return strings.Split(val, ",")
}
Expand Down

0 comments on commit 5da3fdf

Please sign in to comment.