@echo off & setlocal enableextensions enabledelayedexpansion REM # Determine which Docker image to run. IF NOT DEFINED SQITCH_IMAGE ( set SQITCH_IMAGE=sqitch/sqitch:latest ) REM set SQITCH_IMAGE=sqitch/sqitch:latest REM # Set up required pass-through variables. FOR /F "tokens=*" %%g IN ('whoami') do (SET user=%%g) set passopt= -e SQITCH_ORIG_SYSUSER="%username%" FOR /F "tokens=*" %%g IN ('hostname') do (SET machinehostname=%%g) set passopt=%passopt% -e SQITCH_ORIG_EMAIL="%username%@%machinehostname%" FOR /F "tokens=*" %%g IN ('tzutil /g') do (SET TZ=%%g) set passopt=%passopt% -e TZ="%TZ%" if NOT DEFINED LESS ( set LESS=-R ) set passopt=%passopt% -e LESS=%LESS% for %%i in ( SQITCH_CONFIG SQITCH_USERNAME SQITCH_PASSWORD SQITCH_FULLNAME SQITCH_EMAIL SQITCH_TARGET DBI_TRACE PGUSER PGPASSWORD PGHOST PGHOSTADDR PGPORT PGDATABASE PGSERVICE PGOPTIONS PGSSLMODE PGREQUIRESSL PGSSLCOMPRESSION PGREQUIREPEER PGKRBSRVNAME PGKRBSRVNAME PGGSSLIB PGCONNECT_TIMEOUT PGCLIENTENCODING PGTARGETSESSIONATTRS MYSQL_PWD MYSQL_HOST MYSQL_TCP_PORT TNS_ADMIN TWO_TASK ORACLE_SID ISC_USER ISC_PASSWORD VSQL_HOST VSQL_PORT VSQL_USER VSQL_PASSWORD VSQL_SSLMODE SNOWSQL_ACCOUNT SNOWSQL_USER SNOWSQL_PWD SNOWSQL_HOST SNOWSQL_PORT SNOWSQL_DATABASE SNOWSQL_REGION SNOWSQL_WAREHOUSE SNOWSQL_PRIVATE_KEY_PASSPHRASE ) do if defined %%i ( echo %%i is defined as !%%i! SET passopt=!passopt! -e %%i=!%%i! ) REM # Determine the name of the container home directory. set homedst=/home REM if [ $(id -u ${user}) -eq 0 ]; then REM homedst=/root REM fi REM # Set HOME, since the user ID likely won't be the same as for the sqitch user. set passopt=%passopt% -e HOME="%homedst%" echo %passopt% REM # Run the container with the current and home directories mounted. @echo on docker run -it --rm --network host ^ --mount "type=bind,src=%cd%,dst=/repo" ^ --mount "type=bind,src=%UserProfile%,dst=%homedst%" ^ %passopt% %SQITCH_IMAGE% %* @endlocal