-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
41 lines (31 loc) · 1.85 KB
/
Copy pathmain.py
File metadata and controls
41 lines (31 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import argparse
from cli.commands.setup import main as setup_main
from cli.commands.render_video import main as render_main
from cli.commands.export_project import main as export_main
def create_parser():
parser = argparse.ArgumentParser(description="Render Markdown into animated code tutorials.")
subparsers = parser.add_subparsers(help="Commands")
# Subcommand for initial setup
parser_parse = subparsers.add_parser('setup', help='Setup the project')
parser_parse.set_defaults(func=setup_main)
# Subcommand for rendering video using Remotion
parser_render = subparsers.add_parser('render', help='Render a video from markdown using Remotion')
parser_render.add_argument('file', help="Path to the markdown file")
parser_render.add_argument('--preview', action='store_true', help='Enable preview mode (lower res/fps, faster)')
parser_render.add_argument('--markdown-file', type=str, help='Name to use inside remotion/public (default: input.md)')
parser_render.add_argument('--settings', type=str, help='Path to a settings.json to pass to Remotion')
# Removed: skip-warnings; enforce fail-fast to keep outputs correct
parser_render.set_defaults(func=render_main)
# Subcommand for exporting the project
parser_export = subparsers.add_parser('export', help='Export the project to an editor')
parser_export.add_argument('file', help="Path to the markdown file")
parser_export.add_argument('--format', choices=['premiere', 'final-cut'], default='premiere', help='Output target: Premiere or Final Cut (FCPXML)')
parser_export.add_argument('--preview', action='store_true', help='Use preview outputs (MyCompPreview)')
parser_export.set_defaults(func=export_main)
return parser
def main():
parser = create_parser()
args = parser.parse_args()
args.func(args)
if __name__ == "__main__":
main()