summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Fink2020-12-10 22:40:22 +0100
committerDennis Fink2020-12-10 22:40:22 +0100
commit4bfd24d1d4cb28f63134f7ab6525c694fcf4a69a (patch)
tree57730231fb6af9c9312d23f5321eea6e698256ab
parent62cea5cbb2de5689a244f43888369b596a30be54 (diff)
downloadpatternutils-4bfd24d1d4cb28f63134f7ab6525c694fcf4a69a.tar.gz
patternutils-4bfd24d1d4cb28f63134f7ab6525c694fcf4a69a.zip
Add recursive option to prss and allow specific multiple directories
-rw-r--r--patternutils/commands/prss.py25
1 files changed, 21 insertions, 4 deletions
diff --git a/patternutils/commands/prss.py b/patternutils/commands/prss.py
index 79b9413..2efdfae 100644
--- a/patternutils/commands/prss.py
+++ b/patternutils/commands/prss.py
@@ -1,3 +1,5 @@
+import functools
+import itertools
import os.path
import click
@@ -12,7 +14,14 @@ from .. import utils
@click.command(context_settings={"help_option_names": ("-h", "--help", "-?")})
-@click.option("-d", "--directory", default="./")
+@click.option("-d", "--directory", multiple=True, default=["./"])
+@click.option(
+ "-r",
+ "--recursive",
+ is_flag=True,
+ default=False,
+ help="search directories recursively",
+)
@click.option(
"--stream",
is_flag=True,
@@ -31,7 +40,12 @@ from .. import utils
@click.version_option()
@click.argument("url")
def prss(
- url: str, directory: str, stream: bool, human_readable: bool, verbose: bool
+ url: str,
+ directory: str,
+ recursive: bool,
+ stream: bool,
+ human_readable: bool,
+ verbose: bool,
) -> None:
try:
@@ -44,11 +58,15 @@ def prss(
click.secho("Unsupported feed!", fg="red", err=True)
raise SystemExit
+ # Mokey patch walk function to include commandline options
+ walk_function = functools.partial(
+ utils.walk, recursive=recursive, matchdirectories=False
+ )
direntries = []
filenames = []
- for f in utils.walk(directory, recursive=False, match_directories=False):
+ for f in itertools.chain.from_iterable(map(walk_function, directory)):
direntries.append(f)
filenames.append(f.name)
@@ -59,7 +77,6 @@ def prss(
href = entry.enclosures[0]["href"]
splitted_href = href.split("/")
file_to_search = splitted_href[-1]
-
try:
file_index = filenames.index(file_to_search)
except ValueError: