diff --git a/cmd/interactive.go b/cmd/interactive.go index 94578f11..bc620efa 100644 --- a/cmd/interactive.go +++ b/cmd/interactive.go @@ -501,28 +501,22 @@ func buildModelfile(opts runOptions) string { } func normalizeFilePath(fp string) string { - // Define a map of escaped characters and their replacements - replacements := map[string]string{ - "\\ ": " ", // Escaped space - "\\(": "(", // Escaped left parenthesis - "\\)": ")", // Escaped right parenthesis - "\\[": "[", // Escaped left square bracket - "\\]": "]", // Escaped right square bracket - "\\{": "{", // Escaped left curly brace - "\\}": "}", // Escaped right curly brace - "\\$": "$", // Escaped dollar sign - "\\&": "&", // Escaped ampersand - "\\;": ";", // Escaped semicolon - "\\'": "'", // Escaped single quote - "\\\\": "\\", // Escaped backslash - "\\*": "*", // Escaped asterisk - "\\?": "?", // Escaped question mark - } - - for escaped, actual := range replacements { - fp = strings.ReplaceAll(fp, escaped, actual) - } - return fp + return strings.NewReplacer( + "\\ ", " ", // Escaped space + "\\(", "(", // Escaped left parenthesis + "\\)", ")", // Escaped right parenthesis + "\\[", "[", // Escaped left square bracket + "\\]", "]", // Escaped right square bracket + "\\{", "{", // Escaped left curly brace + "\\}", "}", // Escaped right curly brace + "\\$", "$", // Escaped dollar sign + "\\&", "&", // Escaped ampersand + "\\;", ";", // Escaped semicolon + "\\'", "'", // Escaped single quote + "\\\\", "\\", // Escaped backslash + "\\*", "*", // Escaped asterisk + "\\?", "?", // Escaped question mark + ).Replace(fp) } func extractFileNames(input string) []string { @@ -542,10 +536,9 @@ func extractFileData(input string) (string, []api.ImageData, error) { for _, fp := range filePaths { nfp := normalizeFilePath(fp) data, err := getImageData(nfp) - if err != nil { - if os.IsNotExist(err) { - continue - } + if errors.Is(err, os.ErrNotExist) { + continue + } else if err != nil { fmt.Fprintf(os.Stderr, "Couldn't process image: %q\n", err) return "", imgs, err } @@ -553,7 +546,7 @@ func extractFileData(input string) (string, []api.ImageData, error) { input = strings.ReplaceAll(input, fp, "") imgs = append(imgs, data) } - return input, imgs, nil + return strings.TrimSpace(input), imgs, nil } func getImageData(filePath string) ([]byte, error) {