From 0896fa2f997ea1c4db0052ac02cd2a8019578aa3 Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Wed, 12 Mar 2025 23:59:28 -0500 Subject: [PATCH 1/8] Added stringFlag to enable control of ips during server_ca_install script --- commands/local_server_ca_install.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index f29a1b2d..1e3190b4 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -22,6 +22,7 @@ package commands import ( "os" "path/filepath" + "strings" "github.com/pkg/errors" "github.com/symfony-cli/cert" @@ -38,6 +39,7 @@ var localServerCAInstallCmd = &console.Command{ Flags: []console.Flag{ &console.BoolFlag{Name: "renew", Usage: "Force generating a new CA"}, &console.BoolFlag{Name: "force", Aliases: []string{"f"}, Usage: "Force reinstalling current CA"}, + &console.StringFlag{Name: "ips", Usage: "Comma-separated list of IPs for the certificate", Default: "localhost,127.0.0.1,::1"}, }, Action: func(c *console.Context) error { ui := terminal.SymfonyStyle(terminal.Stdout, terminal.Stdin) @@ -64,18 +66,19 @@ var localServerCAInstallCmd = &console.Command{ ca.Uninstall() os.RemoveAll(certsDir) renew = false - goto retry } if err = ca.Install(c.Bool("force")); err != nil { return errors.Wrap(err, "failed to install the local Certificate Authority") } + p12 := filepath.Join(homeDir, "certs", "default.p12") if _, err := os.Stat(p12); os.IsNotExist(err) { terminal.Println("Generating a default certificate for HTTPS support") - err := ca.MakeCert(p12, []string{"localhost", "127.0.0.1", "::1"}) + ips := strings.Split(c.String("ips"), ",") + err := ca.MakeCert(p12, ips) if err != nil { - return errors.Wrap(err, "failed to generate a default certificate for localhost") + return errors.Wrap(err, "failed to generate a certificate") } } From 6c8fe866ad4c79dbc0ce185e65a37598d586a5c0 Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Thu, 13 Mar 2025 00:03:06 -0500 Subject: [PATCH 2/8] Removed some spacing deltas --- commands/local_server_ca_install.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index 1e3190b4..46176a25 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -66,12 +66,12 @@ var localServerCAInstallCmd = &console.Command{ ca.Uninstall() os.RemoveAll(certsDir) renew = false + goto retry } if err = ca.Install(c.Bool("force")); err != nil { return errors.Wrap(err, "failed to install the local Certificate Authority") } - p12 := filepath.Join(homeDir, "certs", "default.p12") if _, err := os.Stat(p12); os.IsNotExist(err) { terminal.Println("Generating a default certificate for HTTPS support") From 7f1563daa8ad12fdae0f54e576ef902a1655c7e9 Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Thu, 13 Mar 2025 00:06:11 -0500 Subject: [PATCH 3/8] Reverted "default" in error response for server ca install script --- commands/local_server_ca_install.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index 46176a25..9e486d2e 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -78,7 +78,7 @@ var localServerCAInstallCmd = &console.Command{ ips := strings.Split(c.String("ips"), ",") err := ca.MakeCert(p12, ips) if err != nil { - return errors.Wrap(err, "failed to generate a certificate") + return errors.Wrap(err, "failed to generate a default certificate") } } From aff62fd2a98910cb8e4221019f78e2986941da37 Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Thu, 13 Mar 2025 00:27:16 -0500 Subject: [PATCH 4/8] Default -> Value correction --- commands/local_server_ca_install.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index 9e486d2e..41d2f437 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -39,7 +39,7 @@ var localServerCAInstallCmd = &console.Command{ Flags: []console.Flag{ &console.BoolFlag{Name: "renew", Usage: "Force generating a new CA"}, &console.BoolFlag{Name: "force", Aliases: []string{"f"}, Usage: "Force reinstalling current CA"}, - &console.StringFlag{Name: "ips", Usage: "Comma-separated list of IPs for the certificate", Default: "localhost,127.0.0.1,::1"}, + &console.StringFlag{Name: "ips", Usage: "Comma-separated list of IPs for the certificate", Value: "localhost,127.0.0.1,::1"}, }, Action: func(c *console.Context) error { ui := terminal.SymfonyStyle(terminal.Stdout, terminal.Stdin) From 17af4e2d7cdb923d2e796f427fa918bf60262352 Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Thu, 13 Mar 2025 00:35:51 -0500 Subject: [PATCH 5/8] Value -> DefaultText based off other resources in repo --- commands/local_server_ca_install.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index 41d2f437..8ce0fe72 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -39,7 +39,7 @@ var localServerCAInstallCmd = &console.Command{ Flags: []console.Flag{ &console.BoolFlag{Name: "renew", Usage: "Force generating a new CA"}, &console.BoolFlag{Name: "force", Aliases: []string{"f"}, Usage: "Force reinstalling current CA"}, - &console.StringFlag{Name: "ips", Usage: "Comma-separated list of IPs for the certificate", Value: "localhost,127.0.0.1,::1"}, + &console.StringFlag{Name: "ips", Usage: "Comma-separated list of IPs for the certificate", DefaultText: "localhost,127.0.0.1,::1"}, }, Action: func(c *console.Context) error { ui := terminal.SymfonyStyle(terminal.Stdout, terminal.Stdin) From 1dbd0078321e23128fdfda5cddf9175dcad96b92 Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Thu, 13 Mar 2025 16:58:03 -0500 Subject: [PATCH 6/8] Modified logic to conditionally use console ips over hardcoded string array When running without --ips="..." flag, ips is "" rather than being sourced by the DefaultText attribute as previously thought. I restored the previous hardcoded string array and use the ips value if it evaluates to as truthy. --- commands/local_server_ca_install.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index 8ce0fe72..e7f7059e 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -75,8 +75,11 @@ var localServerCAInstallCmd = &console.Command{ p12 := filepath.Join(homeDir, "certs", "default.p12") if _, err := os.Stat(p12); os.IsNotExist(err) { terminal.Println("Generating a default certificate for HTTPS support") - ips := strings.Split(c.String("ips"), ",") - err := ca.MakeCert(p12, ips) + if c.String("ips") { + err := ca.MakeCert(p12, strings.Split(c.String("ips"), ",")) + } else { + err := ca.MakeCert(p12, []string{"localhost", "127.0.0.1", "::1"}) + } if err != nil { return errors.Wrap(err, "failed to generate a default certificate") } From 18de036078847a2e43361fa8352b68773e053196 Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Thu, 13 Mar 2025 17:01:05 -0500 Subject: [PATCH 7/8] Resolved lack of conditional used as conditional Look away my lack of go experience is showing --- commands/local_server_ca_install.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index e7f7059e..daac279e 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -75,7 +75,7 @@ var localServerCAInstallCmd = &console.Command{ p12 := filepath.Join(homeDir, "certs", "default.p12") if _, err := os.Stat(p12); os.IsNotExist(err) { terminal.Println("Generating a default certificate for HTTPS support") - if c.String("ips") { + if c.String("ips") != "" { err := ca.MakeCert(p12, strings.Split(c.String("ips"), ",")) } else { err := ca.MakeCert(p12, []string{"localhost", "127.0.0.1", "::1"}) From 9e06a73ab056b0ab17e14996ef350b43bcfc688b Mon Sep 17 00:00:00 2001 From: Lewis Brown Date: Thu, 13 Mar 2025 17:04:11 -0500 Subject: [PATCH 8/8] Resolved definitions to assignments --- commands/local_server_ca_install.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/commands/local_server_ca_install.go b/commands/local_server_ca_install.go index daac279e..13261060 100644 --- a/commands/local_server_ca_install.go +++ b/commands/local_server_ca_install.go @@ -76,9 +76,9 @@ var localServerCAInstallCmd = &console.Command{ if _, err := os.Stat(p12); os.IsNotExist(err) { terminal.Println("Generating a default certificate for HTTPS support") if c.String("ips") != "" { - err := ca.MakeCert(p12, strings.Split(c.String("ips"), ",")) + err = ca.MakeCert(p12, strings.Split(c.String("ips"), ",")) } else { - err := ca.MakeCert(p12, []string{"localhost", "127.0.0.1", "::1"}) + err = ca.MakeCert(p12, []string{"localhost", "127.0.0.1", "::1"}) } if err != nil { return errors.Wrap(err, "failed to generate a default certificate")