diff options
author | pacien | 2020-05-02 04:11:24 +0200 |
---|---|---|
committer | pacien | 2020-05-02 04:11:24 +0200 |
commit | 8e3ac8fe44bebb38e1882ca7f06b8100078ad88d (patch) | |
tree | a748fa1e639cb3b5e1f24a8150e89dbb28c980cb /scripts/migrate_tags_dot_to_colon.py | |
parent | 7042ffc06326fa8ffe70f5a59747709250166c16 (diff) | |
parent | 0e0b5b0ae44da7c1d67983dedd8f8d8d3516236f (diff) | |
download | ldgallery-8e3ac8fe44bebb38e1882ca7f06b8100078ad88d.tar.gz |
Merge branch 'develop': release v1.0v1.0
Diffstat (limited to 'scripts/migrate_tags_dot_to_colon.py')
-rwxr-xr-x | scripts/migrate_tags_dot_to_colon.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/migrate_tags_dot_to_colon.py b/scripts/migrate_tags_dot_to_colon.py new file mode 100755 index 0000000..bf56c4c --- /dev/null +++ b/scripts/migrate_tags_dot_to_colon.py | |||
@@ -0,0 +1,25 @@ | |||
1 | #!/usr/bin/env nix-shell | ||
2 | #!nix-shell -i python -p "python3.withPackages (ps: with ps; [ruamel_yaml])" | ||
3 | |||
4 | from argparse import ArgumentParser | ||
5 | from ruamel.yaml import YAML | ||
6 | from collections.abc import Iterable | ||
7 | |||
8 | parser = ArgumentParser(description='Converts tag separator from dot to colon in sidecar files, easing migration after GH-164.') | ||
9 | parser.add_argument('file', type=str, nargs='+', help='YAML sidecar file(s) to migrate.') | ||
10 | args = parser.parse_args() | ||
11 | |||
12 | yaml = YAML(typ='rt') # preserve order, style and comments | ||
13 | yaml.indent(mapping=2, sequence=2, offset=2) | ||
14 | |||
15 | for file_path in args.file: | ||
16 | with open(file_path, 'r+') as file: | ||
17 | sidecar = yaml.load(file) | ||
18 | if not sidecar: continue | ||
19 | |||
20 | if 'tags' in sidecar and isinstance(sidecar['tags'], Iterable): | ||
21 | sidecar['tags'] = [tag.replace('.', ':') for tag in sidecar['tags']] | ||
22 | |||
23 | file.seek(0) | ||
24 | yaml.dump(sidecar, file) | ||
25 | file.truncate() | ||