From 9e52600b3f4b4f4e9a5176c6ea1c55ee85b76dd7 Mon Sep 17 00:00:00 2001 From: Josh Palmer Date: Sun, 4 Jan 2026 18:17:40 +0100 Subject: [PATCH] allow no-op replacements in update tooling --- internal/fs.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/fs.go b/internal/fs.go index b531baf..232f096 100644 --- a/internal/fs.go +++ b/internal/fs.go @@ -12,9 +12,12 @@ func ReplaceOnce(path string, re *regexp.Regexp, replace string) error { return err } orig := string(data) + if !re.MatchString(orig) { + return fmt.Errorf("pattern not found in %s", path) + } out := re.ReplaceAllString(orig, replace) if out == orig { - return fmt.Errorf("pattern not found in %s", path) + return nil } return os.WriteFile(path, []byte(out), 0644) } @@ -25,9 +28,12 @@ func ReplaceOnceFunc(path string, re *regexp.Regexp, fn func(string) string) err return err } orig := string(data) + if !re.MatchString(orig) { + return fmt.Errorf("pattern not found in %s", path) + } out := re.ReplaceAllStringFunc(orig, fn) if out == orig { - return fmt.Errorf("pattern not found in %s", path) + return nil } return os.WriteFile(path, []byte(out), 0644) }