Browse Source

add v1 support

simon 6 months ago
parent
commit
c216eeafeb
1 changed files with 112 additions and 6 deletions
  1. 112 6
      reflex/reflex.py

+ 112 - 6
reflex/reflex.py

@@ -10,6 +10,7 @@ from typing import List, Optional
 import typer
 import typer.core
 from reflex_cli.deployments import deployments_cli
+from reflex_cli.v2.deployments import hosting_cli
 from reflex_cli.utils import dependency
 
 from reflex import constants
@@ -383,6 +384,13 @@ def login(
     _login()
 
 
+@cli.command()
+def loginv2(loglevel: constants.LogLevel = typer.Option(config.loglevel)):
+    from reflex_cli.v2 import cli as hosting_cli
+
+    hosting_cli.login()
+
+
 @cli.command()
 def logout(
     loglevel: constants.LogLevel = typer.Option(
@@ -569,12 +577,7 @@ def deploy(
 
     hosting_cli.deploy(
         app_name=app_name,
-        export_fn=lambda zip_dest_dir,
-        api_url,
-        deploy_url,
-        frontend,
-        backend,
-        zipping: export_utils.export(
+        export_fn=lambda zip_dest_dir, api_url, deploy_url, frontend, backend, zipping: export_utils.export(
             zip_dest_dir=zip_dest_dir,
             api_url=api_url,
             deploy_url=deploy_url,
@@ -599,6 +602,104 @@ def deploy(
     )
 
 
+@cli.command()
+def deployv2(
+    app_name: str = typer.Option(
+        config.app_name,
+        "--app-name",
+        help="The name of the App to deploy under.",
+        hidden=True,
+    ),
+    regions: List[str] = typer.Option(
+        list(),
+        "-r",
+        "--region",
+        help="The regions to deploy to. For multiple envs, repeat this option, e.g. --region sjc --region iad",
+    ),
+    envs: List[str] = typer.Option(
+        list(),
+        "--env",
+        help="The environment variables to set: <key>=<value>. For multiple envs, repeat this option, e.g. --env k1=v2 --env k2=v2.",
+    ),
+    vmtype: Optional[str] = typer.Option(
+        None,
+        "--vmtype",
+        help="Vm type id. Run reflex apps vmtypes list to get options.",
+    ),
+    hostname: Optional[str] = typer.Option(
+        None,
+        "--hostname",
+        help="The hostname of the frontend.",
+        hidden=True,
+    ),
+    interactive: bool = typer.Option(
+        True,
+        help="Whether to list configuration options and ask for confirmation.",
+    ),
+    envfile: Optional[str] = typer.Option(
+        None,
+        "--envfile",
+        help="The path to an env file to use. Will override any envs set manually.",
+        hidden=True,
+    ),
+    loglevel: constants.LogLevel = typer.Option(
+        config.loglevel, help="The log level to use."
+    ),
+    project: Optional[str] = typer.Option(
+        None,
+        "--project",
+        help="project to deploy to",
+        hidden=True,
+    ),
+    token: Optional[str] = typer.Option(
+        None,
+        "--token",
+        help="token to use for auth",
+        hidden=True,
+    ),
+):
+    """Deploy the app to the Reflex hosting service."""
+    from reflex_cli.v2 import cli as hosting_cli
+
+    from reflex.utils import prerequisites
+    from reflex.utils import export as export_utils
+    from reflex_cli.v2.utils import dependency
+
+    # Set the log level.
+    console.set_log_level(loglevel)
+
+    # Only check requirements if interactive. There is user interaction for requirements update.
+    if interactive:
+        dependency.check_requirements()
+
+    # Check if we are set up.
+    if prerequisites.needs_reinit(frontend=True):
+        _init(name=config.app_name, loglevel=loglevel)
+    prerequisites.check_latest_package_version(constants.ReflexHostingCLI.MODULE_NAME)
+
+    hosting_cli.deploy(
+        app_name=app_name,
+        export_fn=lambda zip_dest_dir, api_url, deploy_url, frontend, backend, zipping: export_utils.export(
+            zip_dest_dir=zip_dest_dir,
+            api_url=api_url,
+            deploy_url=deploy_url,
+            frontend=frontend,
+            backend=backend,
+            zipping=zipping,
+            loglevel=loglevel.subprocess_level(),
+        ),
+        regions=regions,
+        envs=envs,
+        vmtype=vmtype,
+        envfile=envfile,
+        hostname=hostname,
+        interactive=interactive,
+        loglevel=loglevel.subprocess_level(),
+        token=token,
+        project=project,
+    )
+
+
 cli.add_typer(db_cli, name="db", help="Subcommands for managing the database schema.")
 cli.add_typer(script_cli, name="script", help="Subcommands running helper scripts.")
 cli.add_typer(
@@ -606,6 +707,11 @@ cli.add_typer(
     name="deployments",
     help="Subcommands for managing the Deployments.",
 )
+cli.add_typer(
+    hosting_cli,
+    name="apps",
+    help="Subcommands for managing the Deployments.",
+)
 cli.add_typer(
     custom_components_cli,
     name="component",