Skip to content

Commit b0650c7

Browse files
committed
Support of CygWin environment
- Legacy-Id: 18271
1 parent 126d32b commit b0650c7

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

docker/run

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ if [ "$progdir" = "$program" ]; then progdir="."; fi
77
if [ "$progdir" = "." ]; then progdir="$PWD"; fi
88
parent=$(dirname $progdir)
99
if [ "$parent" = "." ]; then parent="$PWD"; fi
10+
if [[ $(uname) =~ CYGWIN.* ]]; then parent=$(echo $parent | sed -e 's/^\/cygdrive\/\(.\)/\1:/'); fi
1011

1112
# ----------------------------------------------------------------------
1213
function usage() {
@@ -84,8 +85,6 @@ PORT=8000
8485
REPO="ietf/datatracker-environment"
8586
DBURL=https://www.ietf.org/lib/dt/sprint/ietf_utf8.bin.tar.bz2
8687
WHO=$(whoami)
87-
WHOUID=$(id -u $WHO)
88-
WHOGID=$(id -g $WHO)
8988
CACHED=''
9089

9190
if [ "$(uname)" = "Linux" ]; then
@@ -141,16 +140,43 @@ elif [ "$(uname)" = "Linux" ]; then
141140
echo "Running on Linux."
142141
elif [[ $(uname) =~ CYGWIN.* ]]; then
143142
echo "Running under Cygwin."
144-
APP="Don't know how to start Docker when running under Cygwin"
145143
CMD="echo"
146144
MYSQLDIR=$(echo $MYSQLDIR | sed -e 's/^\/cygdrive\/\(.\)/\1:/')
147145
WHO=$(echo $WHO | sed -e 's/^.*\\//' | tr -d \\r)
146+
DRIVE=$(echo $USERPROFILE | sed -e 's/\(.\).*/\1/' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefdhijklmnopqartuvwxyz/')
147+
HOME=$DRIVE$(echo $USERPROFILE | sed -e 's/\\/\//g' -e's/.\(.*\)/\1/')
148+
echo "Using home dir $HOME"
149+
PWD=$(echo $PWD | sed -e 's/^\/cygdrive\/\(.\)/\1:/')
150+
if [ "${PWD#$HOME}" = "$PWD" ]; then
151+
die "You must work inside your home directory ($HOME)"
152+
fi
153+
CGWPARENT=$(echo $parent | sed -e 's/^\(.\)\:/\/cygdrive\/\1/')
154+
ICSFILES=$(/usr/bin/find $CGWPARENT/vzic/zoneinfo/ -name '*.ics' -print)
155+
for ICSFILE in $ICSFILES
156+
do
157+
LINK=$(head -n1 $ICSFILE | sed -e '/link .*/!d' -e 's/link \(.*\)/\1/')
158+
if [ "$LINK" ]; then
159+
WDIR=$(dirname $ICSFILE)
160+
echo "Replacing $(basename $ICSFILE) with $LINK"
161+
cp -f $WDIR/$LINK $ICSFILE
162+
fi
163+
done
148164
else
149165
die "This script does not have support for your architecture ($(uname)); sorry :-("
150166
fi
151167

168+
WHOUID=$(id -u $WHO)
169+
WHOGID=$(id -g $WHO)
170+
152171
if [ "$(uname)" = "Linux" ]; then
153172
echo "Not trying to start a virtual docker machine on Linux"
173+
elif [[ $(uname) =~ CYGWIN.* ]]; then
174+
if ! docker info 1> /dev/null 2>&1; then
175+
echo -e "The docker VM doesn't seem to be running; docker info gave:\n $info"
176+
die "Don't know how to start docker when running under Cygwin"
177+
fi
178+
TAG=$(echo $TAG | tr -d \\r)
179+
URL="http://localhost:$PORT/"
154180
elif [ -e "$APP" ]; then
155181
info=$(docker info 2>&1 || true)
156182
if ! docker info 1> /dev/null 2>&1; then

0 commit comments

Comments
 (0)