diff --git a/cmd/setup/setup.go b/cmd/setup/setup.go index 61eabb1..68b24e2 100644 --- a/cmd/setup/setup.go +++ b/cmd/setup/setup.go @@ -31,16 +31,18 @@ func NewInstallCommand() *cobra.Command { return &cobra.Command{ Use: "install", Short: "Setup PMG config and aliases for package managers (npm, pnpm, pip, and more)", - Long: "", RunE: func(cmd *cobra.Command, args []string) error { fmt.Print(ui.GeneratePMGBanner(version.Version, version.Commit)) cfgPath, err := config.CreateConfig() if err != nil { if errors.Is(err, config.ErrConfigAlreadyExists) { - fmt.Printf("PMG config already exists at %s\n", cfgPath) + msg := fmt.Sprintf("⚠️ PMG config already exists at %s\n", cfgPath) + ui.ShowWarning(msg) } else { - return fmt.Errorf("failed to create config file: %w", err) + er := fmt.Errorf("failed to create config file: %w", err) + ui.ErrorExit(er) + return er } } else { fmt.Printf("📄 PMG config created at %s\n", cfgPath) diff --git a/config/config.go b/config/config.go index 70372a5..897766d 100644 --- a/config/config.go +++ b/config/config.go @@ -103,7 +103,7 @@ func CreateConfig() (string, error) { return "", fmt.Errorf("failed to prepare default config: %w", err) } - writeErr := writer.WriteConfigAs(cfgFile) + writeErr := writer.SafeWriteConfigAs(cfgFile) if writeErr != nil { var alreadyExistsErr viper.ConfigFileAlreadyExistsError @@ -180,18 +180,10 @@ func bindFlags(fs *pflag.FlagSet) { return } - // Helper binds a flag if it exists - bind := func(key, flag string) { - if f := fs.Lookup(flag); f != nil { - _ = viper.BindPFlag(key, f) - } - } - - bind("transitive", "transitive") - bind("transitive_depth", "transitive-depth") - bind("include_dev_dependencies", "include-dev-dependencies") - bind("dry_run", "dry-run") - bind("paranoid", "paranoid") + fs.VisitAll(func(flag *pflag.Flag) { + key := strings.ReplaceAll(flag.Name, "-", "_") + _ = viper.BindPFlag(key, flag) + }) } // Helper function to map the provided config for setting key/values in viper diff --git a/internal/alias/alias.go b/internal/alias/alias.go index b738454..0b40b01 100644 --- a/internal/alias/alias.go +++ b/internal/alias/alias.go @@ -128,8 +128,7 @@ func (a *AliasManager) Install() error { return fmt.Errorf("failed to update shell configs: %w", err) } - fmt.Println("✅ PMG aliases installed successfully!") - fmt.Printf("📁 Created: %s\n", rcPath) + fmt.Println("✅ PMG aliases installed successfully at", rcPath) fmt.Println("💡 Restart your terminal or source your shell to use the new aliases") return nil diff --git a/main.go b/main.go index 28ce213..b6fbec4 100644 --- a/main.go +++ b/main.go @@ -63,6 +63,7 @@ func main() { } globalConfig = cfg + fmt.Printf("%+v: ", globalConfig) log.InitZapLogger("pmg", "cli") cmd.SetContext(globalConfig.Inject(cmd.Context())) },