Loading...
No commits yet
Not committed History
Blame
export.py • 1.7 KB
#!/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