diff --git a/envsec/cmd/envsec/main.go b/envsec/cmd/envsec/main.go index 52ef4774..be41d7dc 100644 --- a/envsec/cmd/envsec/main.go +++ b/envsec/cmd/envsec/main.go @@ -7,7 +7,7 @@ import ( "context" "os" - "go.jetpack.io/envsec/internal/envcli" + "go.jetpack.io/envsec/pkg/envcli" ) func main() { diff --git a/envsec/internal/envcli/auth.go b/envsec/pkg/envcli/auth.go similarity index 100% rename from envsec/internal/envcli/auth.go rename to envsec/pkg/envcli/auth.go diff --git a/envsec/internal/envcli/download.go b/envsec/pkg/envcli/download.go similarity index 98% rename from envsec/internal/envcli/download.go rename to envsec/pkg/envcli/download.go index b7f6036a..af208311 100644 --- a/envsec/internal/envcli/download.go +++ b/envsec/pkg/envcli/download.go @@ -21,7 +21,7 @@ type downloadCmdFlags struct { format string } -func downloadCmd() *cobra.Command { +func DownloadCmd() *cobra.Command { flags := &downloadCmdFlags{} command := &cobra.Command{ Use: "download ", diff --git a/envsec/internal/envcli/exec.go b/envsec/pkg/envcli/exec.go similarity index 98% rename from envsec/internal/envcli/exec.go rename to envsec/pkg/envcli/exec.go index 89d86b12..2bf2aae1 100644 --- a/envsec/internal/envcli/exec.go +++ b/envsec/pkg/envcli/exec.go @@ -18,7 +18,7 @@ type execCmdFlags struct { configFlags } -func execCmd() *cobra.Command { +func ExecCmd() *cobra.Command { flags := &execCmdFlags{} command := &cobra.Command{ Use: "exec ", diff --git a/envsec/internal/envcli/flags.go b/envsec/pkg/envcli/flags.go similarity index 87% rename from envsec/internal/envcli/flags.go rename to envsec/pkg/envcli/flags.go index 409f7a87..31a18398 100644 --- a/envsec/internal/envcli/flags.go +++ b/envsec/pkg/envcli/flags.go @@ -75,12 +75,16 @@ func (f *configFlags) validateProjectID(orgID typeids.OrganizationID) (string, e return config.ProjectID.String(), nil } -type cmdConfig struct { +type CmdConfig struct { Store envsec.Store EnvID envsec.EnvID } -func (f *configFlags) genConfig(ctx context.Context) (*cmdConfig, error) { +func (f *configFlags) genConfig(ctx context.Context) (*CmdConfig, error) { + if bootstrappedConfig != nil { + return bootstrappedConfig, nil + } + var tok *session.Token var err error @@ -128,8 +132,16 @@ func (f *configFlags) genConfig(ctx context.Context) (*cmdConfig, error) { return nil, errors.WithStack(err) } - return &cmdConfig{ + return &CmdConfig{ Store: store, EnvID: envid, }, nil } + +var bootstrappedConfig *CmdConfig + +// BootstrapConfig is used to set the config for all commands that use genConfig +// Useful for using envsec programmatically. +func BootstrapConfig(cmdConfig *CmdConfig) { + bootstrappedConfig = cmdConfig +} diff --git a/envsec/internal/envcli/init.go b/envsec/pkg/envcli/init.go similarity index 100% rename from envsec/internal/envcli/init.go rename to envsec/pkg/envcli/init.go diff --git a/envsec/internal/envcli/ls.go b/envsec/pkg/envcli/ls.go similarity index 98% rename from envsec/internal/envcli/ls.go rename to envsec/pkg/envcli/ls.go index b9e69260..65b68166 100644 --- a/envsec/internal/envcli/ls.go +++ b/envsec/pkg/envcli/ls.go @@ -19,7 +19,7 @@ type listCmdFlags struct { Format string } -func listCmd() *cobra.Command { +func ListCmd() *cobra.Command { flags := &listCmdFlags{} command := &cobra.Command{ diff --git a/envsec/internal/envcli/rm.go b/envsec/pkg/envcli/rm.go similarity index 97% rename from envsec/internal/envcli/rm.go rename to envsec/pkg/envcli/rm.go index 27ddef60..ea7e57a1 100644 --- a/envsec/internal/envcli/rm.go +++ b/envsec/pkg/envcli/rm.go @@ -16,7 +16,7 @@ type removeCmdFlags struct { configFlags } -func removeCmd() *cobra.Command { +func RemoveCmd() *cobra.Command { flags := &removeCmdFlags{} command := &cobra.Command{ Use: "rm []...", diff --git a/envsec/internal/envcli/root.go b/envsec/pkg/envcli/root.go similarity index 90% rename from envsec/internal/envcli/root.go rename to envsec/pkg/envcli/root.go index c723234f..a366ccd8 100644 --- a/envsec/internal/envcli/root.go +++ b/envsec/pkg/envcli/root.go @@ -52,13 +52,13 @@ func RootCmd(flags *rootCmdFlags) *cobra.Command { command.Flag("json-errors").Hidden = true command.AddCommand(authCmd()) - command.AddCommand(downloadCmd()) - command.AddCommand(execCmd()) + command.AddCommand(DownloadCmd()) + command.AddCommand(ExecCmd()) command.AddCommand(initCmd()) - command.AddCommand(listCmd()) - command.AddCommand(removeCmd()) - command.AddCommand(setCmd()) - command.AddCommand(uploadCmd()) + command.AddCommand(ListCmd()) + command.AddCommand(RemoveCmd()) + command.AddCommand(SetCmd()) + command.AddCommand(UploadCmd()) command.SetUsageFunc(UsageFunc) return command } diff --git a/envsec/internal/envcli/root_test.go b/envsec/pkg/envcli/root_test.go similarity index 100% rename from envsec/internal/envcli/root_test.go rename to envsec/pkg/envcli/root_test.go diff --git a/envsec/internal/envcli/set.go b/envsec/pkg/envcli/set.go similarity index 98% rename from envsec/internal/envcli/set.go rename to envsec/pkg/envcli/set.go index 36ee095f..10ca8984 100644 --- a/envsec/internal/envcli/set.go +++ b/envsec/pkg/envcli/set.go @@ -17,7 +17,7 @@ type setCmdFlags struct { configFlags } -func setCmd() *cobra.Command { +func SetCmd() *cobra.Command { flags := &setCmdFlags{} command := &cobra.Command{ Use: "set = [=]...", diff --git a/envsec/internal/envcli/upload.go b/envsec/pkg/envcli/upload.go similarity index 98% rename from envsec/internal/envcli/upload.go rename to envsec/pkg/envcli/upload.go index 56fd7249..a74b52f1 100644 --- a/envsec/internal/envcli/upload.go +++ b/envsec/pkg/envcli/upload.go @@ -22,7 +22,7 @@ type uploadCmdFlags struct { format string } -func uploadCmd() *cobra.Command { +func UploadCmd() *cobra.Command { flags := &uploadCmdFlags{} command := &cobra.Command{ Use: "upload []...", diff --git a/envsec/internal/envcli/usage.go b/envsec/pkg/envcli/usage.go similarity index 100% rename from envsec/internal/envcli/usage.go rename to envsec/pkg/envcli/usage.go diff --git a/envsec/internal/envcli/util.go b/envsec/pkg/envcli/util.go similarity index 100% rename from envsec/internal/envcli/util.go rename to envsec/pkg/envcli/util.go