diff --git a/src/cmd/project_runner.go b/src/cmd/project_runner.go index 9ab18ed..64c31f2 100644 --- a/src/cmd/project_runner.go +++ b/src/cmd/project_runner.go @@ -1,7 +1,6 @@ package cmd import ( - "github.com/f1bonacc1/process-compose/src/admitter" "github.com/f1bonacc1/process-compose/src/app" "github.com/f1bonacc1/process-compose/src/config" "github.com/f1bonacc1/process-compose/src/loader" @@ -13,9 +12,6 @@ import ( ) func getProjectRunner(process []string, noDeps bool, mainProcess string, mainProcessArgs []string) *app.ProjectRunner { - if *pcFlags.HideDisabled { - opts.AddAdmitter(&admitter.DisabledProcAdmitter{}) - } if *pcFlags.DisableDotEnv { opts.DisableDotenv() } @@ -93,6 +89,7 @@ func startTui(runner app.IProject) { tui.WithRefreshRate(*pcFlags.RefreshRate), tui.WithReadOnlyMode(*pcFlags.IsReadOnlyMode), tui.WithFullScreen(*pcFlags.IsTuiFullScreen), + tui.WithDisabledHidden(*pcFlags.HideDisabled), } if !*pcFlags.IsReadOnlyMode { config.CreateProcCompHome() diff --git a/src/cmd/root.go b/src/cmd/root.go index e950e50..6a553e6 100644 --- a/src/cmd/root.go +++ b/src/cmd/root.go @@ -74,7 +74,7 @@ func init() { rootCmd.Flags().BoolVar(pcFlags.KeepProjectOn, "keep-project", *pcFlags.KeepProjectOn, "keep the project running even after all processes exit") rootCmd.PersistentFlags().BoolVar(pcFlags.NoServer, "no-server", *pcFlags.NoServer, "disable HTTP server (env: "+config.EnvVarNameNoServer+")") rootCmd.PersistentFlags().BoolVar(pcFlags.IsOrderedShutDown, "ordered-shutdown", *pcFlags.IsOrderedShutDown, "shut down processes in reverse dependency order") - rootCmd.Flags().BoolVarP(pcFlags.HideDisabled, "hide-disabled", "d", *pcFlags.HideDisabled, "hide disabled processes") + rootCmd.Flags().BoolVarP(pcFlags.HideDisabled, "hide-disabled", "d", *pcFlags.HideDisabled, "hide disabled processes (env: "+config.EnvVarHideDisabled+")") rootCmd.Flags().VarP(refreshRateFlag{pcFlags.RefreshRate}, "ref-rate", "r", "TUI refresh rate in seconds or as a Go duration string (e.g. 1s)") 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+")") diff --git a/src/config/Flags.go b/src/config/Flags.go index bc8e611..752c0f2 100644 --- a/src/config/Flags.go +++ b/src/config/Flags.go @@ -37,6 +37,7 @@ const ( EnvVarReadOnlyMode = "PC_READ_ONLY" EnvVarDisableDotEnv = "PC_DISABLE_DOTENV" EnvVarTuiFullScreen = "PC_TUI_FULL_SCREEN" + EnvVarHideDisabled = "PC_HIDE_DISABLED_PROC" ) // Flags represents PC configuration flags. @@ -84,7 +85,7 @@ func NewFlags() *Flags { LogFollow: toPtr(false), LogTailLength: toPtr(math.MaxInt), NoDependencies: toPtr(false), - HideDisabled: toPtr(false), + HideDisabled: toPtr(getHideDisabledDefault()), SortColumn: toPtr(DefaultSortColumn), IsReverseSort: toPtr(false), NoServer: toPtr(getNoServerDefault()), diff --git a/src/config/config.go b/src/config/config.go index bdd0fc6..d076810 100644 --- a/src/config/config.go +++ b/src/config/config.go @@ -208,3 +208,8 @@ func getTuiFullScreenDefault() bool { _, found := os.LookupEnv(EnvVarTuiFullScreen) return found } + +func getHideDisabledDefault() bool { + _, found := os.LookupEnv(EnvVarHideDisabled) + return found +} diff --git a/src/tui/tui_option.go b/src/tui/tui_option.go index 28a116b..ac3c187 100644 --- a/src/tui/tui_option.go +++ b/src/tui/tui_option.go @@ -38,3 +38,10 @@ func WithFullScreen(isFullScreen bool) Option { return nil } } + +func WithDisabledHidden(isHidden bool) Option { + return func(view *pcView) error { + view.hideDisabled.Store(isHidden) + return nil + } +}