#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File: src/scitex_writer/_cli/export.py
"""Export CLI commands."""
import argparse
import sys
from pathlib import Path
def cmd_manuscript(args: argparse.Namespace) -> int:
"""Export manuscript as arXiv-ready tarball."""
from .. import export
project = Path(args.project).resolve()
if not project.exists():
print(f"Error: Project not found: {project}", file=sys.stderr)
return 1
result = export.manuscript(
str(project),
output_dir=args.output_dir,
format=args.format,
)
if result["success"]:
print(f"Tarball: {result['tarball_path']}")
return 0
else:
print(f"Error: {result['error']}", file=sys.stderr)
return 1
def register_parser(subparsers) -> argparse.ArgumentParser:
"""Register export subcommands."""
export_parser = subparsers.add_parser(
"export",
help="Export manuscript for submission",
)
export_subs = export_parser.add_subparsers(dest="export_command")
# export manuscript
ms_parser = export_subs.add_parser(
"manuscript",
help="Export manuscript as arXiv-ready tarball",
)
ms_parser.add_argument(
"project",
nargs="?",
default=".",
help="Project directory (default: current directory)",
)
ms_parser.add_argument(
"--output-dir",
default=None,
help="Output directory (default: 01_manuscript/export/)",
)
ms_parser.add_argument(
"--format",
default="arxiv",
choices=["arxiv"],
help="Export format (default: arxiv)",
)
ms_parser.set_defaults(func=cmd_manuscript)
return export_parser
# EOF