this repo has no description

add force flag to smallweb link

Changed files
+12 -4
cmd
+12 -4
cmd/link.go
··· 10 10 ) 11 11 12 12 func NewCmdLink() *cobra.Command { 13 + var flags struct { 14 + force bool 15 + } 16 + 13 17 cmd := &cobra.Command{ 14 18 Use: "link <source> <target>", 15 19 Aliases: []string{"ln"}, ··· 32 36 target, err := filepath.Abs(args[1]) 33 37 if err != nil { 34 38 return fmt.Errorf("failed to get absolute path for target: %w", err) 35 - } 36 - 37 - if _, err := os.Stat(target); err == nil { 38 - return fmt.Errorf("target already exists") 39 39 } 40 40 41 41 // if target is inside the smallweb directory, create a relative symlink ··· 45 45 return fmt.Errorf("failed to get relative path: %w", err) 46 46 } 47 47 48 + if flags.force { 49 + if err := os.Remove(target); err != nil && !os.IsNotExist(err) { 50 + return fmt.Errorf("failed to remove existing target: %w", err) 51 + } 52 + } 53 + 48 54 if err := os.Symlink(relative, target); err != nil { 49 55 return fmt.Errorf("failed to create symbolic link: %w", err) 50 56 } ··· 60 66 return nil 61 67 }, 62 68 } 69 + 70 + cmd.Flags().BoolVarP(&flags.force, "force", "f", false, "Force overwrite existing symlinks") 63 71 64 72 return cmd 65 73 }