56 lines
2.3 KiB
Batchfile
56 lines
2.3 KiB
Batchfile
|
|
@echo off
|
||
|
|
:: launch.bat — Pick a project folder and start Claude Code (Windows)
|
||
|
|
setlocal enabledelayedexpansion
|
||
|
|
|
||
|
|
set "SCRIPT_DIR=%~dp0"
|
||
|
|
set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
||
|
|
|
||
|
|
:: ── Check for bash (Git Bash or WSL) ─────────────────────────────────────────
|
||
|
|
where bash >nul 2>&1
|
||
|
|
if %errorlevel% neq 0 (
|
||
|
|
echo Git Bash is required to run docker-claude on Windows.
|
||
|
|
echo.
|
||
|
|
echo Download it at: https://git-scm.com/download/win
|
||
|
|
echo Install with default options, then double-click this file again.
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
|
||
|
|
:: ── First-time setup ──────────────────────────────────────────────────────────
|
||
|
|
if not exist "%SCRIPT_DIR%\.env" (
|
||
|
|
echo Looks like this is your first time. Running setup...
|
||
|
|
echo.
|
||
|
|
bash "%SCRIPT_DIR%/setup.sh"
|
||
|
|
if %errorlevel% neq 0 ( pause & exit /b 1 )
|
||
|
|
echo.
|
||
|
|
)
|
||
|
|
|
||
|
|
:: ── Folder picker via PowerShell ──────────────────────────────────────────────
|
||
|
|
set "PROJECT_FOLDER="
|
||
|
|
for /f "usebackq tokens=*" %%i in (`powershell -NoProfile -Command ^
|
||
|
|
"Add-Type -AssemblyName System.Windows.Forms; ^
|
||
|
|
$d = New-Object System.Windows.Forms.FolderBrowserDialog; ^
|
||
|
|
$d.Description = 'Select the project folder to work on'; ^
|
||
|
|
$d.RootFolder = 'MyComputer'; ^
|
||
|
|
$d.ShowNewFolderButton = $false; ^
|
||
|
|
if ($d.ShowDialog() -eq 'OK') { Write-Output $d.SelectedPath } else { exit 1 }"`) do (
|
||
|
|
set "PROJECT_FOLDER=%%i"
|
||
|
|
)
|
||
|
|
|
||
|
|
if not defined PROJECT_FOLDER (
|
||
|
|
echo No folder selected. Exiting.
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
|
||
|
|
:: ── Launch ────────────────────────────────────────────────────────────────────
|
||
|
|
:: Convert Windows path to Unix path for bash
|
||
|
|
for /f "usebackq tokens=*" %%i in (`bash -c "cygpath -u '!PROJECT_FOLDER!'"`) do (
|
||
|
|
set "UNIX_FOLDER=%%i"
|
||
|
|
)
|
||
|
|
|
||
|
|
bash -c "cd '!UNIX_FOLDER!' && '!SCRIPT_DIR:/=\..\..\!/claude.sh' start" 2>nul || ^
|
||
|
|
bash -c "cd '!UNIX_FOLDER!' && bash '$(cygpath -u '!SCRIPT_DIR!')/claude.sh' start"
|
||
|
|
|
||
|
|
pause
|