Skip to content

Commit

Permalink
feat #271: Get Individual Process State in CLI
Browse files Browse the repository at this point in the history
  • Loading branch information
F1bonacc1 committed Nov 9, 2024
1 parent 2f0dfb9 commit aef7723
Show file tree
Hide file tree
Showing 27 changed files with 123 additions and 42 deletions.
8 changes: 8 additions & 0 deletions src/client/processes.go
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
33 changes: 33 additions & 0 deletions src/cmd/get.go
Original file line number Diff line number Diff line change
@@ -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))")
}
38 changes: 22 additions & 16 deletions src/cmd/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions www/docs/cli/process-compose.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
4 changes: 2 additions & 2 deletions www/docs/cli/process-compose_attach.md
Original file line number Diff line number Diff line change
Expand Up @@ -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")
```

Expand All @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_completion.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_completion_bash.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_completion_fish.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_completion_powershell.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_completion_zsh.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_down.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_info.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_list.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
3 changes: 2 additions & 1 deletion www/docs/cli/process-compose_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
33 changes: 33 additions & 0 deletions www/docs/cli/process-compose_process_get.md
Original file line number Diff line number Diff line change
@@ -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-<user>.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-<pid>.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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_process_logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_process_ports.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_process_restart.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_process_scale.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_process_start.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_process_stop.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_project.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_project_state.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_project_update.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_run.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions www/docs/cli/process-compose_up.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
```
Expand All @@ -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
2 changes: 1 addition & 1 deletion www/docs/cli/process-compose_version.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit aef7723

Please sign in to comment.