Add --recurse to inputrename.

This commit is contained in:
voussoir 2021-01-13 17:47:07 -08:00
parent e9908fae3d
commit 8abb8dd66e

View file

@ -5,25 +5,33 @@ import argparse
import os import os
import sys import sys
from voussoirkit import pathclass
from voussoirkit import pipeable from voussoirkit import pipeable
from voussoirkit import spinal
@pipeable.ctrlc_return1 @pipeable.ctrlc_return1
def inputrename_argparse(args): def inputrename_argparse(args):
files = (file for file in os.listdir() if args.keyword in file) if args.recurse:
files = (file for file in spinal.walk_generator('.') if args.keyword in file.basename)
else:
files = (file for file in pathclass.cwd().listdir() if args.keyword in file)
prev = None prev = None
for file in files: for file in files:
print(file) print(file.relative_path)
this = input('> ') this = input('> ')
if this == '' and prev is not None: if this == '' and prev is not None:
this = prev this = prev
if this: if this:
os.rename(file, file.replace(args.keyword, this)) new_name = file.basename.replace(args.keyword, this)
new_name = file.parent.with_child(new_name)
os.rename(file.absolute_path, new_name.absolute_path)
prev = this prev = this
def main(argv): def main(argv):
parser = argparse.ArgumentParser(description=__doc__) parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('keyword') parser.add_argument('keyword')
parser.add_argument('--recurse', dest='recurse', action='store_true')
parser.set_defaults(func=inputrename_argparse) parser.set_defaults(func=inputrename_argparse)
args = parser.parse_args(argv) args = parser.parse_args(argv)