|
@@ -1408,13 +1408,22 @@ def validate_and_create_app_using_remote_template(app_name, template, templates)
|
|
"""
|
|
"""
|
|
# If user selects a template, it needs to exist.
|
|
# If user selects a template, it needs to exist.
|
|
if template in templates:
|
|
if template in templates:
|
|
|
|
+ from reflex_cli.v2.utils import hosting
|
|
|
|
+
|
|
|
|
+ authenticated_token = hosting.authenticated_token()
|
|
|
|
+ if not authenticated_token or not authenticated_token[0]:
|
|
|
|
+ console.print(
|
|
|
|
+ f"Please use `reflex loginv2` to access the '{template}' template."
|
|
|
|
+ )
|
|
|
|
+ raise typer.Exit(3)
|
|
|
|
+
|
|
template_url = templates[template].code_url
|
|
template_url = templates[template].code_url
|
|
else:
|
|
else:
|
|
# Check if the template is a github repo.
|
|
# Check if the template is a github repo.
|
|
if template.startswith("https://github.com"):
|
|
if template.startswith("https://github.com"):
|
|
template_url = f"{template.strip('/').replace('.git', '')}/archive/main.zip"
|
|
template_url = f"{template.strip('/').replace('.git', '')}/archive/main.zip"
|
|
else:
|
|
else:
|
|
- console.error(f"Template `{template}` not found.")
|
|
|
|
|
|
+ console.error(f"Template `{template}` not found or invalid.")
|
|
raise typer.Exit(1)
|
|
raise typer.Exit(1)
|
|
|
|
|
|
if template_url is None:
|
|
if template_url is None:
|
|
@@ -1451,7 +1460,7 @@ def generate_template_using_ai(template: str | None = None) -> str:
|
|
|
|
|
|
|
|
|
|
def fetch_remote_templates(
|
|
def fetch_remote_templates(
|
|
- template: Optional[str] = None,
|
|
|
|
|
|
+ template: str,
|
|
) -> tuple[str, dict[str, Template]]:
|
|
) -> tuple[str, dict[str, Template]]:
|
|
"""Fetch the available remote templates.
|
|
"""Fetch the available remote templates.
|
|
|
|
|
|
@@ -1460,9 +1469,6 @@ def fetch_remote_templates(
|
|
|
|
|
|
Returns:
|
|
Returns:
|
|
The selected template and the available templates.
|
|
The selected template and the available templates.
|
|
-
|
|
|
|
- Raises:
|
|
|
|
- Exit: If the template is not valid or if the template is not specified.
|
|
|
|
"""
|
|
"""
|
|
available_templates = {}
|
|
available_templates = {}
|
|
|
|
|
|
@@ -1474,19 +1480,7 @@ def fetch_remote_templates(
|
|
console.debug(f"Error while fetching templates: {e}")
|
|
console.debug(f"Error while fetching templates: {e}")
|
|
template = constants.Templates.DEFAULT
|
|
template = constants.Templates.DEFAULT
|
|
|
|
|
|
- if template == constants.Templates.DEFAULT:
|
|
|
|
- return template, available_templates
|
|
|
|
-
|
|
|
|
- if template in available_templates:
|
|
|
|
- return template, available_templates
|
|
|
|
-
|
|
|
|
- else:
|
|
|
|
- if template is not None:
|
|
|
|
- console.error(f"{template!r} is not a valid template name.")
|
|
|
|
- console.print(
|
|
|
|
- f"Go to the templates page ({constants.Templates.REFLEX_TEMPLATES_URL}) and copy the command to init with a template."
|
|
|
|
- )
|
|
|
|
- raise typer.Exit(0)
|
|
|
|
|
|
+ return template, available_templates
|
|
|
|
|
|
|
|
|
|
def initialize_app(
|
|
def initialize_app(
|
|
@@ -1501,6 +1495,9 @@ def initialize_app(
|
|
|
|
|
|
Returns:
|
|
Returns:
|
|
The name of the template.
|
|
The name of the template.
|
|
|
|
+
|
|
|
|
+ Raises:
|
|
|
|
+ Exit: If the template is not valid or unspecified.
|
|
"""
|
|
"""
|
|
# Local imports to avoid circular imports.
|
|
# Local imports to avoid circular imports.
|
|
from reflex.utils import telemetry
|
|
from reflex.utils import telemetry
|
|
@@ -1528,7 +1525,10 @@ def initialize_app(
|
|
# change to the default to allow creation of default app
|
|
# change to the default to allow creation of default app
|
|
template = constants.Templates.DEFAULT
|
|
template = constants.Templates.DEFAULT
|
|
elif template == constants.Templates.CHOOSE_TEMPLATES:
|
|
elif template == constants.Templates.CHOOSE_TEMPLATES:
|
|
- template, templates = fetch_remote_templates()
|
|
|
|
|
|
+ console.print(
|
|
|
|
+ f"Go to the templates page ({constants.Templates.REFLEX_TEMPLATES_URL}) and copy the command to init with a template."
|
|
|
|
+ )
|
|
|
|
+ raise typer.Exit(0)
|
|
|
|
|
|
# If the blank template is selected, create a blank app.
|
|
# If the blank template is selected, create a blank app.
|
|
if template in (constants.Templates.DEFAULT,):
|
|
if template in (constants.Templates.DEFAULT,):
|