| from __future__ import annotations | |
| import argparse | |
| import json | |
| from typing import Sequence | |
| from identify import identify | |
| def main(argv: Sequence[str] | None = None) -> int: | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument('--filename-only', action='store_true') | |
| parser.add_argument('path') | |
| args = parser.parse_args(argv) | |
| if args.filename_only: | |
| func = identify.tags_from_filename | |
| else: | |
| func = identify.tags_from_path | |
| try: | |
| tags = sorted(func(args.path)) | |
| except ValueError as e: | |
| print(e) | |
| return 1 | |
| if not tags: | |
| return 1 | |
| else: | |
| print(json.dumps(tags)) | |
| return 0 | |
| if __name__ == '__main__': | |
| raise SystemExit(main()) | |