]> source.dussan.org Git - sonarqube.git/commitdiff
Fix quoting issues causing a failure in OSX, and other quality issues (#2851)
authorJanos Gyerik <janos.gyerik@sonarsource.com>
Fri, 12 Jan 2018 14:52:19 +0000 (15:52 +0100)
committerGitHub <noreply@github.com>
Fri, 12 Jan 2018 14:52:19 +0000 (15:52 +0100)
* Avoid useless cat

* Properly quote command line arguments

* Use [ \t] instead of \s for BSD sed

* Do not delete commented out property settings, by matching strictly at start of line

* Add forgotten double-quotes

* Explicitly escape \t (advice by shellcheck.net)

scripts/property_utils.sh

index 035ce53ba079d57666b6363579fef3107ddcd8bb..86ba82da643bcefc7b9898536009ec95025d15fd 100755 (executable)
@@ -10,7 +10,7 @@ set -euo pipefail
 
 function cnt_lines {
   local FILE=$1
-  cat $FILE | wc -l
+  wc -l < "$FILE"
 }
 
 function write_prop {
@@ -21,8 +21,8 @@ function write_prop {
   # uncomment below to help debug calls to set_property
   #echo "setting property $PROPERTY to value $VALUE in $FILE"
   
-  echo "" >> $FILE
-  echo "${PROPERTY}=${VALUE}" >> $FILE 
+  echo >> "$FILE"
+  echo "${PROPERTY}=${VALUE}" >> "$FILE"
 }
 
 function set_property {
@@ -30,20 +30,20 @@ function set_property {
   local VALUE=$2
   local FILE=$3
 
-  local REGEXP="${PROPERTY//\./\\.}\\s*="
+  local REGEXP="^${PROPERTY//\./\\.}[ \\t]*="
 
   if grep -q "$REGEXP" "$FILE"; then
      # delete line of specified property
-    LINE_COUNT=$(cnt_lines $FILE)
+    LINE_COUNT=$(cnt_lines "$FILE")
 
     if [[ "$OSTYPE" == "darwin"* ]]; then
-      sed -i '' /${REGEXP}/d "$FILE"
+      sed -i '' "/${REGEXP}/d" "$FILE"
     else
-      sed -i /${REGEXP}/d "$FILE"
+      sed -i "/${REGEXP}/d" "$FILE"
     fi
 
     # add property if at least one line deleted
-    local NEW_LINE_COUNT=$(cnt_lines $FILE)
+    local NEW_LINE_COUNT=$(cnt_lines "$FILE")
 
     if [[ $LINE_COUNT -gt $NEW_LINE_COUNT ]]; then
       write_prop "$PROPERTY" "$VALUE" "$FILE"