Skip to content
7 changes: 5 additions & 2 deletions src/specify_cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,10 +214,12 @@ def _install_shared_infra_or_exit(
raise typer.Exit(1)


def ensure_executable_scripts(project_path: Path, tracker: StepTracker | None = None) -> None:
def ensure_executable_scripts(
project_path: Path, tracker: StepTracker | None = None
) -> list[str]:
"""Ensure POSIX .sh scripts under .specify/scripts and .specify/extensions (recursively) have execute bits (no-op on Windows)."""
if os.name == "nt":
return # Windows: skip silently
return [] # Windows: skip silently
scan_roots = [
project_path / ".specify" / "scripts",
project_path / ".specify" / "extensions",
Expand Down Expand Up @@ -265,6 +267,7 @@ def ensure_executable_scripts(project_path: Path, tracker: StepTracker | None =
console.print("[yellow]Some scripts could not be updated:[/yellow]")
for f in failures:
console.print(f" - {f}")
return failures

# ---------------------------------------------------------------------------
# Skills directory helpers
Expand Down
2 changes: 2 additions & 0 deletions src/specify_cli/commands/bundle/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ def _run_init(integration: str, *, script_type: str, offline: bool = False) -> N
integration_options=None,
extensions=None,
trust_extension_urls=False,
dry_run=False,
json_output=False,
)
except typer.Exit as exc:
if exc.exit_code:
Expand Down
Loading