diff --git a/src/client/processes.go b/src/client/processes.go index c6d58ad5..76775afc 100644 --- a/src/client/processes.go +++ b/src/client/processes.go @@ -49,6 +49,14 @@ func (p *PcClient) getProcessState(name string) (*types.ProcessState, error) { return nil, err } defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + var respErr pcError + if err = json.NewDecoder(resp.Body).Decode(&respErr); err != nil { + log.Err(err).Msg("failed to decode err update process") + return nil, err + } + return nil, errors.New(respErr.Error) + } //Create a variable of the same type as our model var sResp types.ProcessState diff --git a/src/cmd/get.go b/src/cmd/get.go new file mode 100644 index 00000000..b3d4210f --- /dev/null +++ b/src/cmd/get.go @@ -0,0 +1,33 @@ +package cmd + +import ( + "github.com/f1bonacc1/process-compose/src/types" + "github.com/rs/zerolog/log" + "github.com/spf13/cobra" +) + +// getCmd represents the get command +var getCmd = &cobra.Command{ + Use: "get [PROCESS]", + Short: "Get a process state", + Args: cobra.MinimumNArgs(1), + Run: func(cmd *cobra.Command, args []string) { + name := args[0] + state, err := getClient().GetProcessState(name) + if err != nil { + log.Fatal().Err(err).Msg("failed to get process state") + } + states := types.ProcessesState{States: []types.ProcessState{*state}} + if *pcFlags.OutputFormat == "" { + *pcFlags.OutputFormat = "wide" + } + //pretty print state + printStates(&states) + }, +} + +func init() { + processCmd.AddCommand(getCmd) + + getCmd.Flags().StringVarP(pcFlags.OutputFormat, "output", "o", *pcFlags.OutputFormat, "Output format. One of: (json, wide (default))") +} diff --git a/src/cmd/list.go b/src/cmd/list.go index d85a8255..a8da8016 100644 --- a/src/cmd/list.go +++ b/src/cmd/list.go @@ -25,25 +25,31 @@ var listCmd = &cobra.Command{ sort.Slice(states.States, func(i, j int) bool { return states.States[i].Name < states.States[j].Name }) - switch *pcFlags.OutputFormat { - case "json": - b, err := json.MarshalIndent(states.States, "", "\t") - if err != nil { - log.Fatal().Err(err).Msg("failed to marshal processes") - } - os.Stdout.Write(b) - case "wide": - printStatesAsTable(states.States) - case "": - for _, state := range states.States { - fmt.Println(state.Name) - } - default: - log.Fatal().Err(err).Msgf("unknown output format %s", *pcFlags.OutputFormat) - } + + printStates(states) + }, } +func printStates(states *types.ProcessesState) { + switch *pcFlags.OutputFormat { + case "json": + b, err := json.MarshalIndent(states.States, "", "\t") + if err != nil { + log.Fatal().Err(err).Msg("failed to marshal processes") + } + os.Stdout.Write(b) + case "wide": + printStatesAsTable(states.States) + case "": + for _, state := range states.States { + fmt.Println(state.Name) + } + default: + log.Fatal().Msgf("unknown output format %s", *pcFlags.OutputFormat) + } +} + func printStatesAsTable(states []types.ProcessState) { // Create a table diff --git a/www/docs/cli/process-compose.md b/www/docs/cli/process-compose.md index a0c23a07..188ae247 100644 --- a/www/docs/cli/process-compose.md +++ b/www/docs/cli/process-compose.md @@ -24,7 +24,7 @@ process-compose [flags] --read-only enable read-only mode (env: PC_READ_ONLY) -r, --ref-rate duration TUI refresh rate in seconds or as a Go duration string (e.g. 1s) (default 1) -R, --reverse sort in reverse order - -S, --sort string sort column name. legal values (case insensitive): [AGE, EXIT, HEALTH, MEM, NAME, NAMESPACE, PID, RESTARTS, STATUS] (default "NAME") + -S, --sort string sort column name. legal values (case insensitive): [AGE, CPU, EXIT, HEALTH, MEM, NAME, NAMESPACE, PID, RESTARTS, STATUS] (default "NAME") --theme string select process compose theme (default "Default") -t, --tui enable TUI (disable with -t=false) (env: PC_DISABLE_TUI) (default true) --tui-fs enable TUI full screen (env: PC_TUI_FULL_SCREEN=1) @@ -45,4 +45,4 @@ process-compose [flags] * [process-compose up](process-compose_up.md) - Run process compose project * [process-compose version](process-compose_version.md) - Print version and build info -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_attach.md b/www/docs/cli/process-compose_attach.md index 0eb7db5a..3a5e3f55 100644 --- a/www/docs/cli/process-compose_attach.md +++ b/www/docs/cli/process-compose_attach.md @@ -14,7 +14,7 @@ process-compose attach [flags] -l, --log-length int log length to display in TUI (default 1000) -r, --ref-rate duration TUI refresh rate in seconds or as a Go duration string (e.g. 1s) (default 1) -R, --reverse sort in reverse order - -S, --sort string sort column name. legal values (case insensitive): [AGE, EXIT, HEALTH, MEM, NAME, NAMESPACE, PID, RESTARTS, STATUS] (default "NAME") + -S, --sort string sort column name. legal values (case insensitive): [AGE, CPU, EXIT, HEALTH, MEM, NAME, NAMESPACE, PID, RESTARTS, STATUS] (default "NAME") --theme string select process compose theme (default "Default") ``` @@ -34,4 +34,4 @@ process-compose attach [flags] * [process-compose](process-compose.md) - Processes scheduler and orchestrator -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_completion.md b/www/docs/cli/process-compose_completion.md index 9dd4d795..472800f2 100644 --- a/www/docs/cli/process-compose_completion.md +++ b/www/docs/cli/process-compose_completion.md @@ -34,4 +34,4 @@ See each sub-command's help for details on how to use the generated script. * [process-compose completion powershell](process-compose_completion_powershell.md) - Generate the autocompletion script for powershell * [process-compose completion zsh](process-compose_completion_zsh.md) - Generate the autocompletion script for zsh -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_completion_bash.md b/www/docs/cli/process-compose_completion_bash.md index d5e68e94..5bd9ad37 100644 --- a/www/docs/cli/process-compose_completion_bash.md +++ b/www/docs/cli/process-compose_completion_bash.md @@ -53,4 +53,4 @@ process-compose completion bash * [process-compose completion](process-compose_completion.md) - Generate the autocompletion script for the specified shell -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_completion_fish.md b/www/docs/cli/process-compose_completion_fish.md index 58971798..f47ba0a5 100644 --- a/www/docs/cli/process-compose_completion_fish.md +++ b/www/docs/cli/process-compose_completion_fish.md @@ -44,4 +44,4 @@ process-compose completion fish [flags] * [process-compose completion](process-compose_completion.md) - Generate the autocompletion script for the specified shell -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_completion_powershell.md b/www/docs/cli/process-compose_completion_powershell.md index 100894aa..f572e5d9 100644 --- a/www/docs/cli/process-compose_completion_powershell.md +++ b/www/docs/cli/process-compose_completion_powershell.md @@ -41,4 +41,4 @@ process-compose completion powershell [flags] * [process-compose completion](process-compose_completion.md) - Generate the autocompletion script for the specified shell -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_completion_zsh.md b/www/docs/cli/process-compose_completion_zsh.md index 1c60715e..a1bd34c1 100644 --- a/www/docs/cli/process-compose_completion_zsh.md +++ b/www/docs/cli/process-compose_completion_zsh.md @@ -55,4 +55,4 @@ process-compose completion zsh [flags] * [process-compose completion](process-compose_completion.md) - Generate the autocompletion script for the specified shell -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_down.md b/www/docs/cli/process-compose_down.md index 0d52a46d..59dac2a1 100644 --- a/www/docs/cli/process-compose_down.md +++ b/www/docs/cli/process-compose_down.md @@ -29,4 +29,4 @@ process-compose down [flags] * [process-compose](process-compose.md) - Processes scheduler and orchestrator -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_info.md b/www/docs/cli/process-compose_info.md index 7867bd48..e4a874f2 100644 --- a/www/docs/cli/process-compose_info.md +++ b/www/docs/cli/process-compose_info.md @@ -28,4 +28,4 @@ process-compose info [flags] * [process-compose](process-compose.md) - Processes scheduler and orchestrator -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_list.md b/www/docs/cli/process-compose_list.md index 296a571b..d7f947ed 100644 --- a/www/docs/cli/process-compose_list.md +++ b/www/docs/cli/process-compose_list.md @@ -29,4 +29,4 @@ process-compose list [flags] * [process-compose](process-compose.md) - Processes scheduler and orchestrator -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process.md b/www/docs/cli/process-compose_process.md index 19981f1d..31cefeae 100644 --- a/www/docs/cli/process-compose_process.md +++ b/www/docs/cli/process-compose_process.md @@ -24,6 +24,7 @@ Execute operations on the available processes ### SEE ALSO * [process-compose](process-compose.md) - Processes scheduler and orchestrator +* [process-compose process get](process-compose_process_get.md) - Get a process state * [process-compose process list](process-compose_process_list.md) - List available processes * [process-compose process logs](process-compose_process_logs.md) - Fetch the logs of a process * [process-compose process ports](process-compose_process_ports.md) - Get the ports that a process is listening on @@ -32,4 +33,4 @@ Execute operations on the available processes * [process-compose process start](process-compose_process_start.md) - Start a process * [process-compose process stop](process-compose_process_stop.md) - Stop running processes -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process_get.md b/www/docs/cli/process-compose_process_get.md new file mode 100644 index 00000000..05802286 --- /dev/null +++ b/www/docs/cli/process-compose_process_get.md @@ -0,0 +1,33 @@ +## process-compose process get + +Get a process state + +``` +process-compose process get [PROCESS] [flags] +``` + +### Options + +``` + -h, --help help for get + -o, --output string Output format. One of: (json, wide (default)) +``` + +### Options inherited from parent commands + +``` + -a, --address string address of the target process compose server (default "localhost") + -L, --log-file string Specify the log file path (env: PC_LOG_FILE) (default "/tmp/process-compose-.log") + --no-server disable HTTP server (env: PC_NO_SERVER) + --ordered-shutdown shut down processes in reverse dependency order + -p, --port int port number (env: PC_PORT_NUM) (default 8080) + --read-only enable read-only mode (env: PC_READ_ONLY) + -u, --unix-socket string path to unix socket (env: PC_SOCKET_PATH) (default "/tmp/process-compose-.sock") + -U, --use-uds use unix domain sockets instead of tcp +``` + +### SEE ALSO + +* [process-compose process](process-compose_process.md) - Execute operations on the available processes + +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process_logs.md b/www/docs/cli/process-compose_process_logs.md index 90a13d4e..51468e34 100644 --- a/www/docs/cli/process-compose_process_logs.md +++ b/www/docs/cli/process-compose_process_logs.md @@ -31,4 +31,4 @@ process-compose process logs [PROCESS] [flags] * [process-compose process](process-compose_process.md) - Execute operations on the available processes -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process_ports.md b/www/docs/cli/process-compose_process_ports.md index 7203d88e..1a3da532 100644 --- a/www/docs/cli/process-compose_process_ports.md +++ b/www/docs/cli/process-compose_process_ports.md @@ -29,4 +29,4 @@ process-compose process ports [PROCESS] [flags] * [process-compose process](process-compose_process.md) - Execute operations on the available processes -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process_restart.md b/www/docs/cli/process-compose_process_restart.md index 8069eabb..4843ad81 100644 --- a/www/docs/cli/process-compose_process_restart.md +++ b/www/docs/cli/process-compose_process_restart.md @@ -29,4 +29,4 @@ process-compose process restart [PROCESS] [flags] * [process-compose process](process-compose_process.md) - Execute operations on the available processes -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process_scale.md b/www/docs/cli/process-compose_process_scale.md index b9e3140a..d9d909f3 100644 --- a/www/docs/cli/process-compose_process_scale.md +++ b/www/docs/cli/process-compose_process_scale.md @@ -29,4 +29,4 @@ process-compose process scale [PROCESS] [COUNT] [flags] * [process-compose process](process-compose_process.md) - Execute operations on the available processes -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process_start.md b/www/docs/cli/process-compose_process_start.md index c989ebfa..2c5e13aa 100644 --- a/www/docs/cli/process-compose_process_start.md +++ b/www/docs/cli/process-compose_process_start.md @@ -29,4 +29,4 @@ process-compose process start [PROCESS] [flags] * [process-compose process](process-compose_process.md) - Execute operations on the available processes -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_process_stop.md b/www/docs/cli/process-compose_process_stop.md index 1aa96e0a..3f763448 100644 --- a/www/docs/cli/process-compose_process_stop.md +++ b/www/docs/cli/process-compose_process_stop.md @@ -30,4 +30,4 @@ process-compose process stop [PROCESS...] [flags] * [process-compose process](process-compose_process.md) - Execute operations on the available processes -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_project.md b/www/docs/cli/process-compose_project.md index c4ad7370..6329aada 100644 --- a/www/docs/cli/process-compose_project.md +++ b/www/docs/cli/process-compose_project.md @@ -27,4 +27,4 @@ Execute operations on a running Process Compose project * [process-compose project state](process-compose_project_state.md) - Get Process Compose project state * [process-compose project update](process-compose_project_update.md) - Update an already running process-compose instance by passing an updated process-compose.yaml file -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_project_state.md b/www/docs/cli/process-compose_project_state.md index 3ae3ce1b..8079729a 100644 --- a/www/docs/cli/process-compose_project_state.md +++ b/www/docs/cli/process-compose_project_state.md @@ -30,4 +30,4 @@ process-compose project state [flags] * [process-compose project](process-compose_project.md) - Execute operations on a running Process Compose project -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_project_update.md b/www/docs/cli/process-compose_project_update.md index 7386e004..347a53f8 100644 --- a/www/docs/cli/process-compose_project_update.md +++ b/www/docs/cli/process-compose_project_update.md @@ -31,4 +31,4 @@ process-compose project update [flags] * [process-compose project](process-compose_project.md) - Execute operations on a running Process Compose project -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_run.md b/www/docs/cli/process-compose_run.md index 7f4564ef..0c6955c6 100644 --- a/www/docs/cli/process-compose_run.md +++ b/www/docs/cli/process-compose_run.md @@ -36,4 +36,4 @@ process-compose run PROCESS [flags] -- [process_args] * [process-compose](process-compose.md) - Processes scheduler and orchestrator -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_up.md b/www/docs/cli/process-compose_up.md index 65d69b70..d77c6175 100644 --- a/www/docs/cli/process-compose_up.md +++ b/www/docs/cli/process-compose_up.md @@ -26,7 +26,7 @@ process-compose up [PROCESS...] [flags] --no-deps don't start dependent processes -r, --ref-rate duration TUI refresh rate in seconds or as a Go duration string (e.g. 1s) (default 1) -R, --reverse sort in reverse order - -S, --sort string sort column name. legal values (case insensitive): [AGE, EXIT, HEALTH, MEM, NAME, NAMESPACE, PID, RESTARTS, STATUS] (default "NAME") + -S, --sort string sort column name. legal values (case insensitive): [AGE, CPU, EXIT, HEALTH, MEM, NAME, NAMESPACE, PID, RESTARTS, STATUS] (default "NAME") --theme string select process compose theme (default "Default") -t, --tui enable TUI (disable with -t=false) (env: PC_DISABLE_TUI) (default true) ``` @@ -47,4 +47,4 @@ process-compose up [PROCESS...] [flags] * [process-compose](process-compose.md) - Processes scheduler and orchestrator -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024 diff --git a/www/docs/cli/process-compose_version.md b/www/docs/cli/process-compose_version.md index 509fe982..901026a2 100644 --- a/www/docs/cli/process-compose_version.md +++ b/www/docs/cli/process-compose_version.md @@ -28,4 +28,4 @@ process-compose version [flags] * [process-compose](process-compose.md) - Processes scheduler and orchestrator -###### Auto generated by spf13/cobra on 13-Sep-2024 +###### Auto generated by spf13/cobra on 26-Oct-2024