From 1b625d89f8f539d5a53dbf726bb8362ffd08a4dd Mon Sep 17 00:00:00 2001 From: Genuchten Date: Wed, 21 Jun 2023 11:56:12 +0200 Subject: [PATCH] remove shopt&alias to make it work on powershell syntax: bash geopython-workshop-ctl.sh start --- README.md | 2 +- workshop/geopython-workshop-ctl.ps.sh | 59 +++++++++++++++++++++++++++ workshop/geopython-workshop-ctl.sh | 2 +- 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 workshop/geopython-workshop-ctl.ps.sh diff --git a/README.md b/README.md index 14d85b9..df21f44 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Docker-Volume-mounted. There is no need to build the Docker Image yourself (see All services are started using a [Docker Compose file](https://github.com/geopython/geopython-workshop/blob/master/workshop/docker-compose.yml). -Windows users; use [powershell](https://en.wikipedia.org/wiki/PowerShell) or [Linux Subsystem](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux) to run below commands. +Windows users; use [powershell](https://en.wikipedia.org/wiki/PowerShell) or [Linux Subsystem](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux) to run below commands. On powershell, use the .ps.sh script and prepend with `bash`, eg. `bash ./geopython-workshop-ctl.ps.sh start`. ```bash cd workshop diff --git a/workshop/geopython-workshop-ctl.ps.sh b/workshop/geopython-workshop-ctl.ps.sh new file mode 100644 index 0000000..7d785bb --- /dev/null +++ b/workshop/geopython-workshop-ctl.ps.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +PROGRAM_NAME=$(basename $0) + +USAGE="Usage: $PROGRAM_NAME " + +if [ "$#" -ne 1 ]; then + echo $USAGE + exit 1 +fi + +# Test for the command +if [ $1 == "start" ]; then + $0 stop + docker compose up -d +elif [ $1 == "stop" ]; then + docker compose stop + docker compose rm --force +elif [ $1 == "url" ]; then + # try to open the Jupyter Notebook in Browser + platform="$(uname | tr '[:upper:]' '[:lower:]')" + + if [[ $platform == 'linux' ]]; then + openapp="xdg-open" + elif [[ $platform == 'darwin' ]]; then # MacOS + openapp="open" + else # assume some kind of Windows variant + openapp="cmd /c start" + fi + + url=$(docker logs geopython-workshop-jupyter 2>&1 | grep " or http" | sed 's/ or //') + if [ -z ${url} ]; then + echo "workshop not started" + echo "did you start the workshop? (i.e. bash $0 start)" + exit 2 + fi + echo "Attempting to open ${url} in your browser on platform ${platform}..." + echo "If this fails, simply copy/paste that URL in your browser" + ${openapp} ${url} +elif [ $1 == "update" ]; then + docker pull geopython/geopython-workshop:latest + echo + echo + echo "workshop is running the latest Docker images" + echo "If updates occured, then stop/start the workshop" +elif [ $1 == "clean" ]; then + # Remove all exited containers + for c in $(docker ps -a -f status=exited -q) + do + docker rm ${c} + done + # And dangling images + for i in $(docker images -f dangling=true -q) + do + docker rmi ${i} + done +else + echo ${USAGE} +fi diff --git a/workshop/geopython-workshop-ctl.sh b/workshop/geopython-workshop-ctl.sh index eb41e4b..2cd2776 100755 --- a/workshop/geopython-workshop-ctl.sh +++ b/workshop/geopython-workshop-ctl.sh @@ -76,4 +76,4 @@ elif [ $1 == "clean" ]; then done else echo ${USAGE} -fi +fi \ No newline at end of file