package cli import ( "os" "git.eeqj.de/sneak/secret/internal/secret" "github.com/spf13/cobra" ) // CLIEntry is the entry point for the secret CLI application func CLIEntry() { secret.Debug("CLIEntry starting - debug output is working") cmd := newRootCmd() if err := cmd.Execute(); err != nil { os.Exit(1) } } func newRootCmd() *cobra.Command { secret.Debug("newRootCmd starting") cmd := &cobra.Command{ Use: "secret", Short: "A simple secrets manager", Long: `A simple secrets manager to store and retrieve sensitive information securely.`, // Ensure usage is shown after errors SilenceUsage: false, SilenceErrors: false, } secret.Debug("Adding subcommands to root command") // Add subcommands cmd.AddCommand(newInitCmd()) cmd.AddCommand(newGenerateCmd()) cmd.AddCommand(newVaultCmd()) cmd.AddCommand(newAddCmd()) cmd.AddCommand(newGetCmd()) cmd.AddCommand(newListCmd()) cmd.AddCommand(newUnlockersCmd()) cmd.AddCommand(newUnlockerCmd()) cmd.AddCommand(newImportCmd()) cmd.AddCommand(newEncryptCmd()) cmd.AddCommand(newDecryptCmd()) cmd.AddCommand(newVersionCmd()) secret.Debug("newRootCmd completed") return cmd }