mirror of
https://github.com/apache/superset.git
synced 2026-04-18 23:55:00 +00:00
chore: Adds non-interactive mode to superset-extensions init command (#36308)
This commit is contained in:
committed by
GitHub
parent
b12f5f8394
commit
db995ad5bf
@@ -404,19 +404,57 @@ def dev(ctx: click.Context) -> None:
|
||||
|
||||
|
||||
@app.command()
|
||||
def init() -> None:
|
||||
id_ = click.prompt("Extension ID (unique identifier, alphanumeric only)", type=str)
|
||||
@click.option(
|
||||
"--id",
|
||||
"id_opt",
|
||||
default=None,
|
||||
help="Extension ID (alphanumeric and underscores only)",
|
||||
)
|
||||
@click.option("--name", "name_opt", default=None, help="Extension display name")
|
||||
@click.option(
|
||||
"--version", "version_opt", default=None, help="Initial version (default: 0.1.0)"
|
||||
)
|
||||
@click.option(
|
||||
"--license", "license_opt", default=None, help="License (default: Apache-2.0)"
|
||||
)
|
||||
@click.option(
|
||||
"--frontend/--no-frontend", "frontend_opt", default=None, help="Include frontend"
|
||||
)
|
||||
@click.option(
|
||||
"--backend/--no-backend", "backend_opt", default=None, help="Include backend"
|
||||
)
|
||||
def init(
|
||||
id_opt: str | None,
|
||||
name_opt: str | None,
|
||||
version_opt: str | None,
|
||||
license_opt: str | None,
|
||||
frontend_opt: bool | None,
|
||||
backend_opt: bool | None,
|
||||
) -> None:
|
||||
id_ = id_opt or click.prompt(
|
||||
"Extension ID (unique identifier, alphanumeric only)", type=str
|
||||
)
|
||||
if not re.match(r"^[a-zA-Z0-9_]+$", id_):
|
||||
click.secho(
|
||||
"❌ ID must be alphanumeric (letters, digits, underscore).", fg="red"
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
name = click.prompt("Extension name (human-readable display name)", type=str)
|
||||
version = click.prompt("Initial version", default="0.1.0")
|
||||
license = click.prompt("License", default="Apache-2.0")
|
||||
include_frontend = click.confirm("Include frontend?", default=True)
|
||||
include_backend = click.confirm("Include backend?", default=True)
|
||||
name = name_opt or click.prompt(
|
||||
"Extension name (human-readable display name)", type=str
|
||||
)
|
||||
version = version_opt or click.prompt("Initial version", default="0.1.0")
|
||||
license_ = license_opt or click.prompt("License", default="Apache-2.0")
|
||||
include_frontend = (
|
||||
frontend_opt
|
||||
if frontend_opt is not None
|
||||
else click.confirm("Include frontend?", default=True)
|
||||
)
|
||||
include_backend = (
|
||||
backend_opt
|
||||
if backend_opt is not None
|
||||
else click.confirm("Include backend?", default=True)
|
||||
)
|
||||
|
||||
target_dir = Path.cwd() / id_
|
||||
if target_dir.exists():
|
||||
@@ -431,7 +469,7 @@ def init() -> None:
|
||||
"name": name,
|
||||
"include_frontend": include_frontend,
|
||||
"include_backend": include_backend,
|
||||
"license": license,
|
||||
"license": license_,
|
||||
"version": version,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user