mirror of
https://github.com/coollabsio/coolify-cli.git
synced 2026-06-19 07:35:04 +00:00
76 lines
1.8 KiB
Go
76 lines
1.8 KiB
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/coollabsio/coolify-cli/internal/cli"
|
|
"github.com/coollabsio/coolify-cli/internal/output"
|
|
"github.com/coollabsio/coolify-cli/internal/service"
|
|
)
|
|
|
|
// NewGetCommand creates the get command
|
|
func NewGetCommand() *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "get <uuid>",
|
|
Args: cli.ExactArgs(1, "<uuid>"),
|
|
Short: "Get server details by uuid",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
ctx := cmd.Context()
|
|
|
|
// Get API client
|
|
client, err := cli.GetAPIClient(cmd)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to get API client: %w", err)
|
|
}
|
|
|
|
// Use service layer
|
|
serverSvc := service.NewServerService(client)
|
|
uuid := args[0]
|
|
|
|
// Get format flags
|
|
format, _ := cmd.Flags().GetString("format")
|
|
showSensitive, _ := cmd.Flags().GetBool("show-sensitive")
|
|
withResources, _ := cmd.Flags().GetBool("resources")
|
|
|
|
var data interface{}
|
|
if withResources {
|
|
resources, err := serverSvc.GetResources(ctx, uuid)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to get server resources: %w", err)
|
|
}
|
|
data = resources.Resources
|
|
} else {
|
|
server, err := serverSvc.Get(ctx, uuid)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to get server: %w", err)
|
|
}
|
|
data = server
|
|
}
|
|
|
|
// Use output formatter
|
|
formatter, err := output.NewFormatter(format, output.Options{
|
|
ShowSensitive: showSensitive,
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if err := formatter.Format(data); err != nil {
|
|
return err
|
|
}
|
|
|
|
if !showSensitive && format == output.FormatTable && !withResources {
|
|
fmt.Println("\nNote: Use -s to show sensitive information.")
|
|
}
|
|
|
|
return nil
|
|
},
|
|
}
|
|
|
|
cmd.Flags().Bool("resources", false, "With resources")
|
|
|
|
return cmd
|
|
}
|