Fix: bashate E043 warnings 71/67571/9
authorGuillaume Lambert <guillaume.lambert@orange.com>
Tue, 4 May 2021 08:14:24 +0000 (10:14 +0200)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Tue, 11 May 2021 19:20:54 +0000 (21:20 +0200)
Arithmetic compound has inconsistent return semantics

((expr)) has a trap that if expr is 0, the return value is 1.
This will trigger a failure with "set -e" and can be very confusing.
It is good defensive programming to avoid this with explicit assignment.

Signed-off-by: Guillaume Lambert <guillaume.lambert@orange.com>
Change-Id: I412bd8872560c90c28642ed5433eab9b2a29a5e8

ensure-documented.sh
shell/job-cost.sh
shell/rtdv3.sh

index 823a542..bc1077d 100755 (executable)
@@ -30,7 +30,7 @@ for file in "${jjb_files[@]}"; do
     for item in "${docs_interests[@]}"; do
         if ! grep -q "$item" "docs/${file//.yaml/.rst}"; then
             echo "$file:$item"
-            (( undocumented_count++ ))
+            undocumented_count=$((undocumented_count+1))
         fi
     done
 done
index dde3129..4648a95 100644 (file)
@@ -53,9 +53,8 @@ else
 fi
 
 # Retrieve the current uptime (in seconds)
-uptime=$(awk '{print $1}' /proc/uptime)
-# Convert to integer by truncating fractional part' and round up by one
-((uptime=${uptime%\.*}+1))
+# And Convert to integer by truncating fractional part' and round up by one
+uptime=$(awk '{print int($1 + 1)}' /proc/uptime)
 
 # EC2 and OpenStack have simiar instace metadata APIs at this IP
 # AWS docs: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
index 08f98a2..eb229b3 100644 (file)
@@ -83,7 +83,7 @@ echo "INFO: Performing merge action"
         fi
         echo "INFO sleeping for 30 seconds $cnt times"
       sleep 30
-      ((cnt+=1))
+      cnt=$((cnt+1))
       if (( cnt >= 20 )); then
         echo "INFO: Job has timed out"
         exit 1