35 lines
808 B
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
CONTAINER_NAME="atlas-sql-server"
SQLCMD_PATH="/opt/mssql-tools18/bin/sqlcmd"
usage() {
cat <<'USAGE'
Usage: scripts/sql/sqlcmd.sh [sqlcmd arguments]
Runs sqlcmd inside the Atlas SQL Server container without embedding the SQL
administrator password in the repository or command line.
Examples:
scripts/sql/sqlcmd.sh -Q "SELECT @@VERSION;"
scripts/sql/sqlcmd.sh -d master -Q "SELECT name FROM sys.databases;"
USAGE
}
if [[ "${1:-}" == "--help" ]]; then
usage
exit 0
fi
if ! command -v docker >/dev/null 2>&1; then
echo "ERROR: docker command not found" >&2
exit 3
fi
exec sudo -n docker exec -i "$CONTAINER_NAME" /bin/bash -lc \
'SQLCMDPASSWORD="$MSSQL_SA_PASSWORD" exec /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -C "$@"' \
sqlcmd "$@"