summaryrefslogtreecommitdiff
path: root/replace
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2020-04-18 11:09:41 -0700
committerBen Sima <ben@bsima.me>2020-04-18 11:19:42 -0700
commitcdb0b5e90046d2c6bfa5ff6d1948088febf0d363 (patch)
treef35e45e9e3b1ff34df76aac9fe1edca9aca38bef /replace
parent0771324e14c9602286b4de71c036447d5ad835eb (diff)
tweak replace script
Diffstat (limited to 'replace')
-rwxr-xr-xreplace9
1 files changed, 4 insertions, 5 deletions
diff --git a/replace b/replace
index ea14088..7900bcf 100755
--- a/replace
+++ b/replace
@@ -4,18 +4,17 @@ replace stuff in a file or files
"""
import argparse
import difflib
-import glob
import fileinput
import sys
cli = argparse.ArgumentParser(description=__doc__)
cli.add_argument(
- "-v", "--verbose", action="store_true", help="print diffs for every replacement"
+ "-d", "--diff", action="store_true", help="print diffs for every replacement"
)
cli.add_argument("old", type=str, help="target string")
cli.add_argument("new", type=str, help="replacement string")
cli.add_argument(
- "files", nargs="*", metavar="FILE", help="files to operate on, or omit for stdin",
+ "files", nargs="*", metavar="FILE", help="file(s) to operate on, or omit for stdin",
)
args = cli.parse_args()
@@ -23,8 +22,8 @@ differ = difflib.Differ()
for line in fileinput.input(files=args.files, inplace=True):
replacement = line.replace(args.old, args.new)
- print(replacement, end="")
- if args.verbose and args.old in line:
+ if args.diff and args.old in line:
diff = list(differ.compare([line], [replacement]))
sys.stderr.write(f"{fileinput.filename()}:{fileinput.lineno()}:\n")
sys.stderr.writelines(diff)
+ print(replacement, end="")