@echo off setlocal EnableExtensions set "SCRIPT_URL=%DOSH_INSTALL_PS1%" if "%SCRIPT_URL%"=="" set "SCRIPT_URL=https://git.palav.dev/Palav/dosh/raw/branch/main/install.ps1" set "PS=" for %%P in (powershell.exe pwsh.exe powershell pwsh) do ( if not defined PS ( where %%P >nul 2>nul && set "PS=%%P" ) ) if not defined PS ( echo missing required command: powershell.exe or pwsh.exe 1>&2 exit /b 1 ) set "TMP_PS=%TEMP%\dosh-install-%RANDOM%-%RANDOM%.ps1" set "TMP_BINDIR=%TEMP%\dosh-install-%RANDOM%-%RANDOM%.bindir" set "DOSH_INSTALL_PS1_URL=%SCRIPT_URL%" set "DOSH_INSTALL_PS1_PATH=%TMP_PS%" set "DOSH_INSTALL_BINDIR_FILE=%TMP_BINDIR%" if exist "%SCRIPT_URL%" ( copy /Y "%SCRIPT_URL%" "%TMP_PS%" >nul ) else ( "%PS%" -NoProfile -ExecutionPolicy Bypass -Command "$ErrorActionPreference='Stop'; $ProgressPreference='SilentlyContinue'; Invoke-WebRequest -UseBasicParsing -Uri $env:DOSH_INSTALL_PS1_URL -OutFile $env:DOSH_INSTALL_PS1_PATH" ) if errorlevel 1 ( del "%TMP_PS%" >nul 2>nul del "%TMP_BINDIR%" >nul 2>nul exit /b 1 ) "%PS%" -NoProfile -ExecutionPolicy Bypass -File "%TMP_PS%" %* set "RC=%ERRORLEVEL%" del "%TMP_PS%" >nul 2>nul if "%RC%"=="0" if exist "%TMP_BINDIR%" ( for /f "usebackq delims=" %%D in ("%TMP_BINDIR%") do if not defined DOSH_CMD_BINDIR set "DOSH_CMD_BINDIR=%%D" ) del "%TMP_BINDIR%" >nul 2>nul if not defined DOSH_CMD_BINDIR ( set "DOSH_CMD_PREFIX=%PREFIX%" if "%DOSH_CMD_PREFIX%"=="" set "DOSH_CMD_PREFIX=%USERPROFILE%\.local" set "DOSH_CMD_BINDIR=%DOSH_CMD_PREFIX%\bin" ) set "DOSH_NEXT_PATH=%PATH%" if "%RC%"=="0" ( echo ;%PATH%; | find /I ";%DOSH_CMD_BINDIR%;" >nul 2>nul if errorlevel 1 set "DOSH_NEXT_PATH=%DOSH_CMD_BINDIR%;%PATH%" ) endlocal & set "PATH=%DOSH_NEXT_PATH%" & exit /b %RC%