diff --git a/cmd/apikey/apikey_current.go b/cmd/apikey/apikey_current.go index 6e545f88..460200af 100644 --- a/cmd/apikey/apikey_current.go +++ b/cmd/apikey/apikey_current.go @@ -4,6 +4,7 @@ import ( "fmt" "os" + "github.com/civo/cli/common" "github.com/civo/cli/config" "github.com/civo/cli/utility" "github.com/spf13/cobra" @@ -24,7 +25,19 @@ var apikeyCurrentCmd = &cobra.Command{ if index != "" { config.Current.Meta.CurrentAPIKey = index config.SaveConfig() - fmt.Printf("Set the default API Key to be %s\n", utility.Green(index)) + + ow := utility.NewOutputWriter() + ow.StartLine() + ow.AppendDataWithLabel("name", index, "Name") + + switch common.OutputFormat { + case "json": + ow.WriteSingleObjectJSON(common.PrettySet) + case "custom": + ow.WriteCustomOutput(common.OutputFields) + default: + fmt.Printf("Set the default API Key to be %s\n", utility.Green(index)) + } } }, diff --git a/cmd/apikey/apikey_remove.go b/cmd/apikey/apikey_remove.go index 29abbb6d..afd0ea51 100644 --- a/cmd/apikey/apikey_remove.go +++ b/cmd/apikey/apikey_remove.go @@ -41,7 +41,18 @@ var apikeyRemoveCmd = &cobra.Command{ config.SaveConfig() if numKeys > len(config.Current.APIKeys) { - fmt.Printf("Removed the API Key %s\n", utility.Green(index)) + ow := utility.NewOutputWriter() + ow.StartLine() + ow.AppendDataWithLabel("name", index, "Name") + + switch common.OutputFormat { + case "json": + ow.WriteSingleObjectJSON(common.PrettySet) + case "custom": + ow.WriteCustomOutput(common.OutputFields) + default: + fmt.Printf("Removed the API Key %s\n", utility.Green(index)) + } } else { utility.Error("The API Key %q couldn't be found", args[0]) os.Exit(1) diff --git a/cmd/instance/instance_ip.go b/cmd/instance/instance_ip.go index 58be013a..bbd21578 100644 --- a/cmd/instance/instance_ip.go +++ b/cmd/instance/instance_ip.go @@ -51,10 +51,23 @@ var instancePublicIPCmd = &cobra.Command{ utility.Error("%s", err) } - if args[0] == "disable" { - fmt.Printf("Instance %s has been updated to NOT have a Public IP\n", utility.Green(instance.Hostname)) - } else { - fmt.Printf("Instance %s has been updated to have a Public IP. IP addressed will be assigned shortly.\n", utility.Green(instance.Hostname)) + ow := utility.NewOutputWriter() + ow.StartLine() + ow.AppendDataWithLabel("id", instance.ID, "ID") + ow.AppendDataWithLabel("hostname", instance.Hostname, "Hostname") + ow.AppendDataWithLabel("public_ip", args[0], "Public IP") + + switch common.OutputFormat { + case "json": + ow.WriteSingleObjectJSON(common.PrettySet) + case "custom": + ow.WriteCustomOutput(common.OutputFields) + default: + if args[0] == "disable" { + fmt.Printf("Instance %s has been updated to NOT have a Public IP\n", utility.Green(instance.Hostname)) + } else { + fmt.Printf("Instance %s has been updated to have a Public IP. IP addressed will be assigned shortly.\n", utility.Green(instance.Hostname)) + } } }, } diff --git a/cmd/instance/instance_recovery.go b/cmd/instance/instance_recovery.go index 24ca5341..20d9a9ae 100644 --- a/cmd/instance/instance_recovery.go +++ b/cmd/instance/instance_recovery.go @@ -47,8 +47,6 @@ Example: utility.Error("%s", err) os.Exit(1) } - fmt.Println("Instance ID is: ", instance.ID) - if args[0] == "enable" { _, err := client.EnableRecoveryMode(instance.ID) if err != nil { @@ -63,10 +61,23 @@ Example: } } - if args[0] == "enable" { - fmt.Printf("Recovery mode has been enabled for instance %s\n", utility.Green(instance.Hostname)) - } else { - fmt.Printf("Recovery mode has been disabled for instance %s\n", utility.Green(instance.Hostname)) + ow := utility.NewOutputWriter() + ow.StartLine() + ow.AppendDataWithLabel("id", instance.ID, "ID") + ow.AppendDataWithLabel("hostname", instance.Hostname, "Hostname") + ow.AppendDataWithLabel("recovery_mode", args[0], "Recovery Mode") + + switch common.OutputFormat { + case "json": + ow.WriteSingleObjectJSON(common.PrettySet) + case "custom": + ow.WriteCustomOutput(common.OutputFields) + default: + if args[0] == "enable" { + fmt.Printf("Recovery mode has been enabled for instance %s (%s)\n", utility.Green(instance.Hostname), instance.ID) + } else { + fmt.Printf("Recovery mode has been disabled for instance %s (%s)\n", utility.Green(instance.Hostname), instance.ID) + } } }, } diff --git a/cmd/kubernetes/kubernetes_nodepool_instance_delete.go b/cmd/kubernetes/kubernetes_nodepool_instance_delete.go index 1e9dba0b..a3a62b86 100644 --- a/cmd/kubernetes/kubernetes_nodepool_instance_delete.go +++ b/cmd/kubernetes/kubernetes_nodepool_instance_delete.go @@ -63,7 +63,20 @@ var kubernetesNodePoolInstanceDeleteCmd = &cobra.Command{ os.Exit(1) } - fmt.Printf("Instance %s has been deleted from node pool %s in cluster %s\n", instanceID, nodePoolID, kubernetesFindCluster.Name) + ow := utility.NewOutputWriter() + ow.StartLine() + ow.AppendDataWithLabel("instance_id", instanceID, "Instance ID") + ow.AppendDataWithLabel("node_pool_id", nodePoolID, "Node Pool ID") + ow.AppendDataWithLabel("cluster_name", kubernetesFindCluster.Name, "Cluster Name") + + switch common.OutputFormat { + case "json": + ow.WriteSingleObjectJSON(common.PrettySet) + case "custom": + ow.WriteCustomOutput(common.OutputFields) + default: + fmt.Printf("Instance %s has been deleted from node pool %s in cluster %s\n", instanceID, nodePoolID, kubernetesFindCluster.Name) + } } else { fmt.Println("Operation aborted.") } diff --git a/cmd/kubernetes/kubernetes_remove.go b/cmd/kubernetes/kubernetes_remove.go index d680d312..ffef9929 100644 --- a/cmd/kubernetes/kubernetes_remove.go +++ b/cmd/kubernetes/kubernetes_remove.go @@ -118,6 +118,7 @@ var kubernetesRemoveCmd = &cobra.Command{ } else { ow.WriteMultipleObjectsJSON(common.PrettySet) } + case "custom": ow.WriteCustomOutput(common.OutputFields) default: fmt.Printf("The Kubernetes %s (%s) %s been deleted\n", diff --git a/cmd/kubernetes/kubernetes_update_kubeconfig.go b/cmd/kubernetes/kubernetes_update_kubeconfig.go index ab5e547c..289a63af 100644 --- a/cmd/kubernetes/kubernetes_update_kubeconfig.go +++ b/cmd/kubernetes/kubernetes_update_kubeconfig.go @@ -39,6 +39,18 @@ var kubernetesUpdateKubeconfigCmd = &cobra.Command{ os.Exit(1) } - fmt.Printf("Updated kubeconfig with cluster %s configuration\n", utility.Green(cluster.Name)) + ow := utility.NewOutputWriter() + ow.StartLine() + ow.AppendDataWithLabel("id", cluster.ID, "ID") + ow.AppendDataWithLabel("name", cluster.Name, "Name") + + switch common.OutputFormat { + case "json": + ow.WriteSingleObjectJSON(common.PrettySet) + case "custom": + ow.WriteCustomOutput(common.OutputFields) + default: + fmt.Printf("Updated kubeconfig with cluster %s configuration\n", utility.Green(cluster.Name)) + } }, } diff --git a/cmd/network/network_show.go b/cmd/network/network_show.go index 5a80ee80..caf30291 100644 --- a/cmd/network/network_show.go +++ b/cmd/network/network_show.go @@ -3,7 +3,9 @@ package network import ( "fmt" "os" + "strconv" + "github.com/civo/cli/common" "github.com/civo/cli/config" "github.com/civo/cli/utility" "github.com/spf13/cobra" @@ -29,36 +31,59 @@ var networkShowCmd = &cobra.Command{ os.Exit(1) } - // Display Core Network Details - fmt.Println("Network Details:") - fmt.Printf("ID: %s\n", network.ID) - fmt.Printf("Name: %s\n", network.Name) - fmt.Printf("Default: %s\n", utility.BoolToYesNo(network.Default)) - fmt.Printf("CIDR: %s\n", network.CIDR) - fmt.Printf("Status: %s\n", network.Status) - fmt.Printf("IPv4 Enabled: %s\n", utility.BoolToYesNo(network.IPv4Enabled)) - fmt.Printf("IPv6 Enabled: %s\n", utility.BoolToYesNo(network.IPv6Enabled)) - - // Conditional VLAN Details + ow := utility.NewOutputWriter() + ow.StartLine() + ow.AppendDataWithLabel("id", network.ID, "ID") + ow.AppendDataWithLabel("name", network.Name, "Name") + ow.AppendDataWithLabel("default", utility.BoolToYesNo(network.Default), "Default") + ow.AppendDataWithLabel("cidr", network.CIDR, "CIDR") + ow.AppendDataWithLabel("status", network.Status, "Status") + ow.AppendDataWithLabel("ipv4_enabled", utility.BoolToYesNo(network.IPv4Enabled), "IPv4 Enabled") + ow.AppendDataWithLabel("ipv6_enabled", utility.BoolToYesNo(network.IPv6Enabled), "IPv6 Enabled") + ow.AppendDataWithLabel("gateway_ipv4", network.GatewayIPv4, "Gateway IPv4") if network.VlanID != 0 { - fmt.Println("\nVLAN Details:") - fmt.Printf("VLAN ID: %d\n", network.VlanID) - fmt.Printf("Hardware Address: %s\n", network.PhysicalInterface) - fmt.Printf("Gateway IPv4: %s\n", network.GatewayIPv4) - fmt.Printf("Allocation Pool IPv4 Start: %s\n", network.AllocationPoolV4Start) - fmt.Printf("Allocation Pool IPv4 End: %s\n", network.AllocationPoolV4End) - } else { - fmt.Println("\nNo VLAN Configuration") + ow.AppendDataWithLabel("vlan_id", strconv.Itoa(network.VlanID), "VLAN ID") + ow.AppendDataWithLabel("physical_interface", network.PhysicalInterface, "Hardware Address") + ow.AppendDataWithLabel("allocation_pool_v4_start", network.AllocationPoolV4Start, "Allocation Pool IPv4 Start") + ow.AppendDataWithLabel("allocation_pool_v4_end", network.AllocationPoolV4End, "Allocation Pool IPv4 End") } + ow.AppendDataWithLabel("nameservers_v4", utility.SliceToString(network.NameserversV4), "Nameservers IPv4") + ow.AppendDataWithLabel("nameservers_v6", utility.SliceToString(network.NameserversV6), "Nameservers IPv6") - // Nameserver Details - if len(network.NameserversV4) > 0 || len(network.NameserversV6) > 0 { - fmt.Println("\nNameserver Details:") - if len(network.NameserversV4) > 0 { - fmt.Printf("Nameservers IPv4: %s\n", utility.SliceToString(network.NameserversV4)) + switch common.OutputFormat { + case "json": + ow.WriteSingleObjectJSON(common.PrettySet) + case "custom": + ow.WriteCustomOutput(common.OutputFields) + default: + fmt.Println("Network Details:") + fmt.Printf("ID: %s\n", network.ID) + fmt.Printf("Name: %s\n", network.Name) + fmt.Printf("Default: %s\n", utility.BoolToYesNo(network.Default)) + fmt.Printf("CIDR: %s\n", network.CIDR) + fmt.Printf("Status: %s\n", network.Status) + fmt.Printf("IPv4 Enabled: %s\n", utility.BoolToYesNo(network.IPv4Enabled)) + fmt.Printf("IPv6 Enabled: %s\n", utility.BoolToYesNo(network.IPv6Enabled)) + fmt.Printf("Gateway IPv4: %s\n", network.GatewayIPv4) + + if network.VlanID != 0 { + fmt.Println("\nVLAN Details:") + fmt.Printf("VLAN ID: %d\n", network.VlanID) + fmt.Printf("Hardware Address: %s\n", network.PhysicalInterface) + fmt.Printf("Allocation Pool IPv4 Start: %s\n", network.AllocationPoolV4Start) + fmt.Printf("Allocation Pool IPv4 End: %s\n", network.AllocationPoolV4End) + } else { + fmt.Println("\nNo VLAN Configuration") } - if len(network.NameserversV6) > 0 { - fmt.Printf("Nameservers IPv6: %s\n", utility.SliceToString(network.NameserversV6)) + + if len(network.NameserversV4) > 0 || len(network.NameserversV6) > 0 { + fmt.Println("\nNameserver Details:") + if len(network.NameserversV4) > 0 { + fmt.Printf("Nameservers IPv4: %s\n", utility.SliceToString(network.NameserversV4)) + } + if len(network.NameserversV6) > 0 { + fmt.Printf("Nameservers IPv6: %s\n", utility.SliceToString(network.NameserversV6)) + } } } },