From 749c140a168d1b16c9259266943f7f9ba0e91a58 Mon Sep 17 00:00:00 2001 From: James Ravenscroft Date: Sun, 3 Mar 2024 20:58:25 +0000 Subject: [PATCH] latest version stuff --- pyproject.toml | 2 +- src/notesync.py | 28 ++++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8c4b762..812aed9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "notesync" -version = "0.1.0" +version = "0.2.0" description = "" authors = [ {name = "James Ravenscroft", email = "ravenscroftj@gmail.com"}, diff --git a/src/notesync.py b/src/notesync.py index 5b8131b..d9b4e5b 100644 --- a/src/notesync.py +++ b/src/notesync.py @@ -1,18 +1,34 @@ +from unittest import skip import frontmatter import click import os import glob import shutil +import fnmatch + @click.command() @click.option("--input-dir", "-i", required=True) @click.option('--output-dir','-o', required=True) -def main(input_dir: str, output_dir): +@click.option('--ignore', default=None, required=False, multiple=True) +@click.option('--dry-run/--no-dry-run', default=False) +def main(input_dir: str, output_dir, ignore=None, dry_run=False): public_files = [] for file in glob.glob(os.path.join(input_dir,"**","*.md")): + + if ignore is not None: + skip_file = False + + for pattern in ignore: + if fnmatch.fnmatch(file, pattern): + skip_file = True + + if skip_file: + continue + with open(file) as f: data = frontmatter.load(f) @@ -20,16 +36,20 @@ def main(input_dir: str, output_dir): print(f"public file {file}") public_files.append(file) - + for file in public_files: path = file[len(input_dir):] out_path = os.path.join(os.path.abspath(output_dir), path) if not os.path.exists(os.path.dirname(out_path)): print(f"mkdir {os.path.dirname(out_path)}") - os.makedirs(os.path.dirname(out_path), exist_ok=True) - shutil.copy(file, out_path) + if not dry_run: + os.makedirs(os.path.dirname(out_path), exist_ok=True) + + print(f"{file} => {out_path}") + if not dry_run: + shutil.copy(file, out_path) if __name__ == "__main__":