From 41f73e8c27d6b74cc41f087e2b60f18efd4ba675 Mon Sep 17 00:00:00 2001
From: philippe-perrin-sonarsource <philippe.perrin@sonarsource.com>
Date: Wed, 5 Jun 2019 16:02:05 +0200
Subject: Add support for Windows in ./scripts/start.sh

---
 scripts/os.sh    | 25 +++++++++++++++++++++++++
 scripts/start.sh | 15 +++++----------
 scripts/stop.sh  | 16 +++++++---------
 3 files changed, 37 insertions(+), 19 deletions(-)
 create mode 100644 scripts/os.sh

(limited to 'scripts')

diff --git a/scripts/os.sh b/scripts/os.sh
new file mode 100644
index 00000000000..0564e3c2adb
--- /dev/null
+++ b/scripts/os.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+###############################
+# Helper for OS folders and scripts
+###############################
+
+set -euo pipefail
+
+if [[ "${OSTYPE:-}" == "darwin"* ]]; then
+  OS_DIR='macosx-universal-64'
+  SH_FILE="sonar.sh"
+elif [[ "${OSTYPE:-}" == "msys"* ]]; then
+  OS_DIR='windows-x86-64'
+  SH_FILE="StartSonar.bat"
+else
+  OS_DIR='linux-x86-64'
+  SH_FILE="sonar.sh"
+fi
+
+runSQ() {
+  if [[ "${OSTYPE:-}" == "msys"* ]]; then
+    "$1"
+  else
+    "$1" start
+  fi
+}
\ No newline at end of file
diff --git a/scripts/start.sh b/scripts/start.sh
index 941b0ba1c97..1971abcaab8 100755
--- a/scripts/start.sh
+++ b/scripts/start.sh
@@ -24,6 +24,7 @@ if [ -r "$ROOT/private/scripts/editions.sh" ]; then
 fi
 source "$ROOT/scripts/logs.sh"
 source "$ROOT/scripts/stop.sh"
+source "$ROOT/scripts/os.sh"
 
 PATCHES=""
 EDITION="$DEFAULT_EDITION"
@@ -47,12 +48,6 @@ EDITION=$(resolveAliases "$EDITION")
 checkEdition "$EDITION"
 checkLogArgument "$LOG"
 
-if [[ "${OSTYPE:-}" == "darwin"* ]]; then
-  OS='macosx-universal-64'
-else
-  OS='linux-x86-64'
-fi
-
 OSS_ZIP="$(distributionDirOf "community")/$(baseFileNameOf "community")-*.zip"
 if ! ls ${OSS_ZIP} &> /dev/null; then
   echo 'Sources are not built'
@@ -64,8 +59,8 @@ stopAny
 
 cd "$(distributionDirOf "$EDITION")"
 
-SH_FILE="sonarqube-*/bin/$OS/sonar.sh"
-if ! ls ${SH_FILE} &> /dev/null; then
+SH_FILE_DIR="sonarqube-*/bin/$OS_DIR/"
+if ! ls $SH_FILE_DIR &> /dev/null; then
   BASE_FILE_NAME="$(baseFileNameOf "$EDITION")"
   echo "Unpacking ${BASE_FILE_NAME}..."
   ZIP_FILE="${BASE_FILE_NAME}-*.zip"
@@ -78,7 +73,7 @@ cd "$ROOT"
 
 source "$ROOT"/scripts/patches_utils.sh
 
-SQ_EXEC="$SQ_HOME/bin/$OS/sonar.sh"
+SQ_EXEC="$SQ_HOME/bin/$OS_DIR/$SH_FILE"
 
 # invoke patches if at least one was specified
 # each patch is passed the path to the SQ instance home directory as first and only argument
@@ -86,7 +81,7 @@ if [ "$PATCHES" ]; then
   call_patches "$PATCHES" "$SQ_HOME"
 fi
 
-"$SQ_EXEC" start
+runSQ $SQ_EXEC
 sleep 1
 doTail "$LOG"
 
diff --git a/scripts/stop.sh b/scripts/stop.sh
index 55f3757c30e..0cc9e61113e 100755
--- a/scripts/stop.sh
+++ b/scripts/stop.sh
@@ -7,24 +7,22 @@ set -euo pipefail
 
 ROOT=$(pwd)
 source "$ROOT/scripts/editions.sh"
+source "$ROOT/scripts/os.sh"
 if [ -r "$ROOT/private/scripts/editions.sh" ]; then
   source "$ROOT/private/scripts/editions.sh"
 fi
 
-if [[ "$OSTYPE" == "darwin"* ]]; then
-  OS='macosx-universal-64'
-else
-  OS='linux-x86-64'
-fi
-
 stopAny() {
-  for edition in $EDITIONS; do
-      SONAR_SH="$(distributionDirOf "$edition")/sonarqube-*/bin/$OS/sonar.sh"
+  # Don't try to stop on windows for now
+  if [[ "${OSTYPE:-}" != "msys" ]]; then
+    for edition in $EDITIONS; do
+      SONAR_SH="$(distributionDirOf "$edition")/sonarqube-*/bin/$OS_DIR/sonar.sh"
       if ls $SONAR_SH &> /dev/null; then
         echo "$(baseFileNameOf "$edition") is unpacked"
         sh $SONAR_SH stop
       fi
-  done
+    done
+  fi
 }
 
 # check the script was called to avoid execute when script is only sourced
-- 
cgit v1.2.3