]> source.dussan.org Git - sonarqube.git/commitdiff
[SCRIPTS] add support to set non existing property in property_utils
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 4 Aug 2015 12:11:51 +0000 (14:11 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 6 Aug 2015 12:18:35 +0000 (14:18 +0200)
scripts/property_utils.sh

index 43c7dcb20856f41ace6b050ddd2b0df2bacb6175..e301bb471651ae59a9e8b4c27b2bccb4576b19f8 100755 (executable)
@@ -19,24 +19,36 @@ function cnt_lines() {
   cat $1 | wc -l
 }
 
-function set_property() {
+function write_prop() {
   PROPERTY=$1
   VALUE=$2
   FILE=$3
 
   # uncomment below to help debug calls to set_property
-  # echo "setting property $PROPERTY to value $VALUE in $FILE"
+  #echo "setting property $PROPERTY to value $VALUE in $FILE"
+  
+  echo "" >> $FILE
+  echo "${PROPERTY}=${VALUE}" >> $FILE 
+}
 
-  # delete line of specified property
-  LINE_COUNT=$(cnt_lines $FILE)
-  REGEXP="${1//\./\\\.}\s*="
-  sed -i $SED_DISABLE_BACKUP "/${REGEXP}/d" $FILE
+function set_property() {
+  PROPERTY=$1
+  VALUE=$2
+  FILE=$3
 
-  # add property if at least one line deleted
-  NEW_LINE_COUNT=$(cnt_lines $FILE)
-  if [ $LINE_COUNT -gt $NEW_LINE_COUNT ]; then
-    echo "" >> $FILE
-    echo "${PROPERTY}=${VALUE}" >> $FILE 
+  REGEXP="${1//\./\\\.}\s*="
+  if [ $(grep $REGEXP $FILE | wc -l) -eq 0 ]; then
+    write_prop $1 $2 $3
+  else
+    # delete line of specified property
+    LINE_COUNT=$(cnt_lines $FILE)
+    sed -i $SED_DISABLE_BACKUP "/${REGEXP}/d" $FILE
+
+    # add property if at least one line deleted
+    NEW_LINE_COUNT=$(cnt_lines $FILE)
+    if [ $LINE_COUNT -gt $NEW_LINE_COUNT ]; then
+      write_prop $1 $2 $3
+    fi
   fi
 }