package main import ( "fmt" "os" "path/filepath" "strings" ) // applyNewModifications handles `t:new` type patches func applyNewModifications(targetFilePath string, modifications []string) error { // Ensure the directory structure exists dir := filepath.Dir(targetFilePath) if err := os.MkdirAll(dir, os.ModePerm); err != nil { return fmt.Errorf("failed to create directories for target file: %v", err) } // Check if the file exists if _, err := os.Stat(targetFilePath); err == nil { // File exists, delete it if err := os.Remove(targetFilePath); err != nil { return fmt.Errorf("failed to delete existing target file: %v", err) } } // Create a new file and apply modifications tempFile, err := os.Create(targetFilePath) if err != nil { return fmt.Errorf("failed to create target file: %v", err) } defer tempFile.Close() // Write new modifications for _, mod := range modifications { if strings.HasPrefix(mod, "+") { newLine := strings.TrimPrefix(mod, "+") if _, err := tempFile.WriteString(newLine + "\n"); err != nil { return fmt.Errorf("failed to write new content to target file: %v", err) } } } return nil }