Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
check smpi compilation scripts with www.shellcheck.net
authorAugustin Degomme <adegomme@users.noreply.github.com>
Tue, 14 Jul 2020 23:35:09 +0000 (01:35 +0200)
committerAugustin Degomme <adegomme@users.noreply.github.com>
Tue, 14 Jul 2020 23:35:09 +0000 (01:35 +0200)
surprisingly fine.
Sadly sonarcloud does not allow external plugins so checker can't be included.

examples/smpi/replay_multiple/generate_multiple_deployment.sh
src/smpi/smpicc.in
src/smpi/smpicxx.in
src/smpi/smpif90.in
src/smpi/smpiff.in

index 5de54b4..30d6ea8 100755 (executable)
@@ -80,47 +80,47 @@ HOSTFILETMP=0
 if [ -z "${HOSTFILE}" ] ; then
     HOSTFILETMP=1
     HOSTFILE="$(mktemp tmphostXXXXXX)"
-    perl -ne 'print "$1\n" if /.*<host.*?id="(.*?)".*?\/>.*/' ${PLATFORM} > ${HOSTFILE}
+    perl -ne 'print "$1\n" if /.*<host.*?id="(.*?)".*?\/>.*/' "${PLATFORM}" > "${HOSTFILE}"
 fi
 UNROLLEDHOSTFILETMP=0
 
 #parse if our lines are terminated by :num_process
-multiple_processes=$(grep -c ":" $HOSTFILE)
+multiple_processes=$(grep -c ":" "$HOSTFILE")
 if [ "${multiple_processes}" -gt 0 ] ; then
     UNROLLEDHOSTFILETMP=1
     UNROLLEDHOSTFILE="$(mktemp tmphostXXXXXX)"
-    perl -ne ' do{ for ( 1 .. $2 ) { print "$1\n" } } if /(.*?):(\d+).*/'  ${HOSTFILE}  > ${UNROLLEDHOSTFILE}
+    perl -ne ' do{ for ( 1 .. $2 ) { print "$1\n" } } if /(.*?):(\d+).*/'  "${HOSTFILE}"  > "${UNROLLEDHOSTFILE}"
     if [ ${HOSTFILETMP} = 1 ] ; then
-        rm ${HOSTFILE}
+        rm "${HOSTFILE}"
         HOSTFILETMP=0
     fi
     HOSTFILE=$UNROLLEDHOSTFILE
 fi
 
 # Don't use wc -l to compute it to avoid issues with trailing \n at EOF
-hostfile_procs=$(grep -c "[a-zA-Z0-9]" $HOSTFILE)
-if [ ${hostfile_procs} = 0 ] ; then
-   echo "[$(basename $0)] ** error: the hostfile '${HOSTFILE}' is empty. Aborting." >&2
+hostfile_procs=$(grep -c "[a-zA-Z0-9]" "$HOSTFILE")
+if [ "${hostfile_procs}" = 0 ] ; then
+   echo "[$(basename "$0")] ** error: the hostfile '${HOSTFILE}' is empty. Aborting." >&2
    exit 1
 fi
 
 ##-------------------------------- DEFAULT APPLICATION --------------------------------------
 
-APPLICATIONTMP=$(echo ${PROC_ARGS}|cut -d' ' -f2 -s)
+APPLICATIONTMP=$(echo "${PROC_ARGS}"|cut -d' ' -f2 -s)
 
-cat > ${APPLICATIONTMP} <<APPLICATIONHEAD
+cat > "${APPLICATIONTMP}" <<APPLICATIONHEAD
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "https://simgrid.org/simgrid.dtd">
 <platform version="4.1">
 APPLICATIONHEAD
 
 ##---- cache hostnames of hostfile---------------
-if [ -n "${HOSTFILE}" ] && [ -f ${HOSTFILE} ]; then
-    hostnames=$(tr '\n\r' '  ' < ${HOSTFILE})
-    NUMHOSTS=$(wc -l < ${HOSTFILE})
+if [ -n "${HOSTFILE}" ] && [ -f "${HOSTFILE}" ]; then
+    hostnames=$(tr '\n\r' '  ' < "${HOSTFILE}")
+    NUMHOSTS=$(wc -l < "${HOSTFILE}")
 fi
 
-DESCRIPTIONFILE=$(echo $PROC_ARGS|cut -d' ' -f1)
+DESCRIPTIONFILE=$(echo "$PROC_ARGS"|cut -d' ' -f1)
 
 if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
     IFS_OLD=$IFS
@@ -136,7 +136,7 @@ if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
         hosttrace=$(tr '\n\r' '  ' < $(echo "$line"|cut -d' ' -f2))
         NUMPROCSMINE=$(wc -l < $(echo "$line"|cut -d' ' -f2))
         
-        if [ $NUMPROCSMINE != $(echo "$line"|cut -d' ' -f3) ];
+        if [ "$NUMPROCSMINE" != $(echo "$line"|cut -d' ' -f3) ];
         then
           echo "declared num of processes for instance $instance : $(echo "$line"|cut -d' ' -f3) is not the same as the one in the replay files : $NUMPROCSMINE. Please check consistency of these information"
           exit 1
@@ -168,45 +168,46 @@ if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
            if [ -n "${HOSTFILE}" ]; then
                j=$(( NUMPROCS % NUMHOSTS + 1))
             fi
-            hostname=$(echo $hostnames|cut -d' ' -f$j)
+            hostname=$(echo "$hostnames"|cut -d' ' -f$j)
             if [ -z "${hostname}" ]; then
                host="host"$($j)
             else
                host="${hostname}"
             fi
-        
-            echo "  <actor host=\"${host}\" function=\"${instance}\"> <!-- function name used only for logging -->" >> ${APPLICATIONTMP}
-            echo "    <argument value=\"${instance}\"/> <!-- instance -->" >> ${APPLICATIONTMP}
-            echo "    <argument value=\"${i}\"/> <!-- rank -->" >> ${APPLICATIONTMP}
-            echo "    <argument value=\"$(echo $hosttrace|cut -d' ' -f$((i+1)))\"/>" >> ${APPLICATIONTMP}
+            {
+            echo "  <actor host=\"${host}\" function=\"${instance}\"> <!-- function name used only for logging -->"
+            echo "    <argument value=\"${instance}\"/> <!-- instance -->"
+            echo "    <argument value=\"${i}\"/> <!-- rank -->"
+            echo "    <argument value=\"$(echo "$hosttrace"|cut -d' ' -f$((i+1)))\"/>"
            
-            echo "    <argument value=\"${sleeptime}\"/> <!-- delay -->" >> ${APPLICATIONTMP}
-            echo "  </actor>" >> ${APPLICATIONTMP}
+            echo "    <argument value=\"${sleeptime}\"/> <!-- delay -->"
+            echo "  </actor>"
+            } >> "${APPLICATIONTMP}"
             NUMPROCS=$(( NUMPROCS + 1))
         done
         # return IFS back to newline for "for" loop
         IFS_OLD=$IFS
         IFS=$(printf '\n_'); IFS=${IFS%_} # protect trailing \n
-    done < ${DESCRIPTIONFILE}
+    done < "${DESCRIPTIONFILE}"
 
     # return delimiter to previous value
     IFS=$IFS_OLD
     IFS_OLD=
 else
-    printf "File not found: %s\n", ${DESCRIPTIONFILE} >&2
+    printf "File not found: %s\n", "${DESCRIPTIONFILE}" >&2
     exit 1
 fi
 
-cat >> ${APPLICATIONTMP} <<APPLICATIONFOOT
+cat >> "${APPLICATIONTMP}" <<APPLICATIONFOOT
 </platform>
 APPLICATIONFOOT
 ##-------------------------------- end DEFAULT APPLICATION --------------------------------------
 
 if [ ${HOSTFILETMP} = 1 ] ; then
-    rm ${HOSTFILE}
+    rm "${HOSTFILE}"
 fi
 if [ ${UNROLLEDHOSTFILETMP} = 1 ] ; then
-    rm ${UNROLLEDHOSTFILE}
+    rm "${UNROLLEDHOSTFILE}"
 fi
 
 exit 0
index e0487db..7661c53 100755 (executable)
@@ -17,7 +17,7 @@ CMAKE_LINKARGS="-L@libdir@"
 @SMPITOOLS_SH@
 
 # Don't use -Wl,-z-defs with Clang and address sanitizer
-if [ "@CMAKE_C_COMPILER_ID@" = "Clang" -a "@HAVE_SANITIZER_ADDRESS@" = "TRUE" ]; then
+if [ "@CMAKE_C_COMPILER_ID@" = "Clang" ] && [ "@HAVE_SANITIZER_ADDRESS@" = "TRUE" ]; then
     LINKER_UNDEFINED_ERROR=""
 else
     LINKER_UNDEFINED_ERROR="1"
@@ -63,7 +63,7 @@ while [ $# -gt 0 ]; do
             list_add CMDARGS "-c"
             ;;
         *.c)
-            SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
+            SRCFILE="$(readlink -f "${ARG}" 2>/dev/null)"
             if [ -z "$SRCFILE" ] ; then
                 SRCFILE="$ARG"
             fi
@@ -96,12 +96,12 @@ done
 list_set CMDLINE "${CC}"
 list_add_not_empty CMDLINE "${CFLAGS}"
 list_add_not_empty CMDLINE ${INCLUDEARGS}
-list_add_not_empty CMDLINE ${CMAKE_LINKARGS}
+list_add_not_empty CMDLINE "${CMAKE_LINKARGS}"
 list_add_not_empty CMDLINE "${CMDARGS}"
 list_add_not_empty CMDLINE "${LINKARGS}"
 
-eval $(list_get CMDLINE)
-if [ "x$VERBOSE" = x1 -o "x$show" = x1 ] ; then
+eval "$(list_get CMDLINE)"
+if [ "x$VERBOSE" = x1 ] || [ "x$show" = x1 ] ; then
   echo "$@"
   [ "x$show" = x1 ] && exit 0
 fi
index 16e8ec0..c4af9cf 100755 (executable)
@@ -19,7 +19,7 @@ CMAKE_LINKARGS="-L@libdir@"
 list_set CXXFLAGS "-std=gnu++11" @SMPI_CXX_FLAGS@
 list_set LINKARGS
 
-if [ "@CMAKE_C_COMPILER_ID@" = "Clang" -a "@HAVE_SANITIZER_ADDRESS@" = "TRUE" ]; then
+if [ "@CMAKE_C_COMPILER_ID@" = "Clang" ] && [ "@HAVE_SANITIZER_ADDRESS@" = "TRUE" ]; then
     LINKER_UNDEFINED_ERROR=""
 else
     LINKER_UNDEFINED_ERROR="1"
@@ -63,7 +63,7 @@ while [ $# -gt 0 ]; do
             list_add CMDARGS "-c"
             ;;
         *.c)
-            SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
+            SRCFILE="$(readlink -f "${ARG}" 2>/dev/null)"
             if [ -z "$SRCFILE" ] ; then
                 SRCFILE="$ARG"
             fi
@@ -93,12 +93,12 @@ done
 list_set CMDLINE "${CXX}"
 list_add_not_empty CMDLINE "${CXXFLAGS}"
 list_add_not_empty CMDLINE ${INCLUDEARGS}
-list_add_not_empty CMDLINE ${CMAKE_LINKARGS}
+list_add_not_empty CMDLINE "${CMAKE_LINKARGS}"
 list_add_not_empty CMDLINE "${CMDARGS}"
 list_add_not_empty CMDLINE "${LINKARGS}"
 
 eval $(list_get CMDLINE)
-if [ "x$VERBOSE" = x1 -o "x$show" = x1 ] ; then
+if [ "x$VERBOSE" = x1 ] || [ "x$show" = x1 ] ; then
   echo "$@"
   [ "x$show" = x1 ] && exit 0
 fi
index d89ff5e..e661b83 100644 (file)
@@ -30,7 +30,6 @@ else
    echo "Warning: smpif90 pretends to be a regular compiler (SMPI_PRETEND_CC is set). Produced binaries will not be usable in SimGrid."
 fi
 list_set TMPFILES
-main_name=main
 
 cleanup () {
     eval $(list_get TMPFILES)
@@ -64,13 +63,13 @@ while [ $# -gt 0 ]; do
             list_add CMDLINE "-c"
             ;;
         *.f90)
-            FILENAME=`basename ${ARG}`
+            FILENAME=$(basename "${ARG}")
             TMPFILE=$(mymktemp "${ARG}" ".f90")
             ORIGFILE="${FILENAME%.f90}"
             filter_and_compile
             ;;
         *.F90)
-            FILENAME=`basename ${ARG}`
+            FILENAME=$(basename "${ARG}")
             TMPFILE=$(mymktemp "${ARG}" ".F90")
             ORIGFILE="${FILENAME%.F90}"
             filter_and_compile
@@ -106,11 +105,11 @@ if [ $NEEDS_OUTPUT -ne 0 ]; then
 fi
 
 list_add_not_empty CMDLINE ${INCLUDEARGS}
-list_add_not_empty CMDLINE ${CMAKE_LINKARGS}
+list_add_not_empty CMDLINE "${CMAKE_LINKARGS}"
 list_add_not_empty CMDLINE "${LINKARGS}"
 
 eval $(list_get CMDLINE)
-if [ "x$VERBOSE" = x1 -o "x$show" = x1 ] ; then
+if [ "x$VERBOSE" = x1 ] || [ "x$show" = x1 ] ; then
   echo "$@"
   [ "x$show" = x1 ] && exit 0
 fi
index a642099..f413b77 100644 (file)
@@ -30,7 +30,6 @@ else
    echo "Warning: smpiff pretends to be a regular compiler (SMPI_PRETEND_CC is set). Produced binaries will not be usable in SimGrid."
 fi
 list_set TMPFILES
-main_name=main
 
 cleanup () {
     eval $(list_get TMPFILES)
@@ -42,9 +41,9 @@ filter_and_compile_f77() {
     list_add TMPFILES "${TMPFILE}"
     if [ "x${SMPI_PRETEND_CC}" = "x" ]; then
       #replace "program main_name by subroutine user_main (and the end clause as well)"
-      if [ $TRACE_CALL_LOCATION -gt 0 ]; then
-        echo "#include \"@includedir@/smpi/smpi_extended_traces_fortran.h\"" > ${TMPFILE}
-        echo "#line 1 \"${ARG}\"" >> ${TMPFILE}
+      if [ "$TRACE_CALL_LOCATION" -gt 0 ]; then
+        echo "#include \"@includedir@/smpi/smpi_extended_traces_fortran.h\"" > "${TMPFILE}"
+        echo "#line 1 \"${ARG}\"" >> "${TMPFILE}"
       fi
       sed 's/^[[:space:]]\{6\}[[:space:]]*\([eE][nN][dD] \)\{0,1\}[pP][rR][oO][gG][rR][aA][mM][^a-zA-Z0-9]*\([a-zA-Z0-9_]*\)/      \1subroutine user_main /g' "${ARG}" >> "${TMPFILE}"
       SRCFILE="${TMPFILE}"
@@ -56,9 +55,9 @@ filter_and_compile_f77() {
 filter_and_compile_f90() {
     list_add TMPFILES "${TMPFILE}"
     #replace "program main_name by subroutine user_main (and the end clause as well)"
-    if [ $TRACE_CALL_LOCATION -gt 0 ]; then
-      echo "#include \"@includedir@/smpi/smpi_extended_traces_fortran.h\"" > ${TMPFILE}
-      echo "#line 1 \"${ARG}\"" >> ${TMPFILE}
+    if [ "$TRACE_CALL_LOCATION" -gt 0 ]; then
+      echo "#include \"@includedir@/smpi/smpi_extended_traces_fortran.h\"" > "${TMPFILE}"
+      echo "#line 1 \"${ARG}\"" >> "${TMPFILE}"
     fi
     sed 's/^\([[:space:]]*\)\([eE][nN][dD] \)\{0,1\}[pP][rR][oO][gG][rR][aA][mM][^a-zA-Z0-9]*\([a-zA-Z0-9_]*\)/\1\2subroutine user_main /g' "${ARG}" >> "${TMPFILE}"
     SRCFILE="${TMPFILE}"
@@ -79,25 +78,25 @@ while [ $# -gt 0 ]; do
             list_add CMDLINE "-c"
             ;;
         *.f)
-            FILENAME=`basename ${ARG}`
+            FILENAME=$(basename "${ARG}")
             TMPFILE=$(mymktemp "${ARG}" ".f")
             ORIGFILE="${FILENAME%.f}"
             filter_and_compile_f77
             ;;
         *.F)$
-            FILENAME=`basename ${ARG}`
+            FILENAME=$(basename "${ARG}")
             TMPFILE=$(mymktemp "${ARG}" ".F")
             ORIGFILE="${FILENAME%.F}"
             filter_and_compile_f77
             ;;
         *.f90)
-            FILENAME=`basename ${ARG}`
+            FILENAME=$(basename "${ARG}")
             TMPFILE=$(mymktemp "${ARG}" ".f90")
             ORIGFILE="${FILENAME%.f90}"
             filter_and_compile_f90
             ;;
         *.F90)$
-            FILENAME=`basename ${ARG}`
+            FILENAME=$(basename "${ARG}")
             TMPFILE=$(mymktemp "${ARG}" ".F90")
             ORIGFILE="${FILENAME%.F90}"
             filter_and_compile_f90
@@ -139,11 +138,11 @@ if [ $NEEDS_OUTPUT -ne 0 ]; then
 fi
 
 list_add_not_empty CMDLINE ${INCLUDEARGS}
-list_add_not_empty CMDLINE ${CMAKE_LINKARGS}
+list_add_not_empty CMDLINE "${CMAKE_LINKARGS}"
 list_add_not_empty CMDLINE "${LINKARGS}"
 
 eval $(list_get CMDLINE)
-if [ "x$VERBOSE" = x1 -o "x$show" = x1 ] ; then
+if [ "x$VERBOSE" = x1 ] || [ "x$show" = x1 ] ; then
   echo "$@"
   [ "x$show" = x1 ] && exit 0
 fi