Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[#!] #!/bin/sh -> #!/usr/bin/env sh
[simgrid.git] / examples / smpi / replay_multiple / generate_multiple_deployment.sh
index e454081..ff73e7c 100755 (executable)
@@ -1,7 +1,6 @@
-#! /bin/sh
+#!/usr/bin/env sh
 
-# Copyright (c) 2007-2014. The SimGrid Team.
-# All rights reserved.
+# Copyright (c) 2007-2017. The SimGrid Team. All rights reserved.
 
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the license (GNU LGPL) which comes with this package.
@@ -20,8 +19,6 @@ then
     exit
 fi
 
-EXTOPT=""
-WRAPPER=""
 HOSTFILE=""
 
 while true; do
@@ -29,7 +26,7 @@ while true; do
         "-platform")
            PLATFORM="$2"
             if [ ! -f "${PLATFORM}" ]; then
-               echo "[`basename $0`] ** error: the file '${PLATFORM}' does not exist. Aborting."
+               echo "[$(basename $0)] ** error: the file '${PLATFORM}' does not exist. Aborting."
                exit 1
             fi
            shift 2
@@ -37,7 +34,7 @@ while true; do
         "-hostfile")
            HOSTFILE="$2"
             if [ ! -f "${HOSTFILE}" ]; then
-               echo "[`basename $0`] ** error: the file '${HOSTFILE}' does not exist. Aborting."
+               echo "[$(basename $0)] ** error: the file '${HOSTFILE}' does not exist. Aborting."
                exit 1
             fi
            shift 2
@@ -45,7 +42,7 @@ while true; do
         "-machinefile")
            HOSTFILE="$2"
             if [ ! -f "${HOSTFILE}" ]; then
-               echo "[`basename $0`] ** error: the file '${HOSTFILE}' does not exist. Aborting."
+               echo "[$(basename $0)] ** error: the file '${HOSTFILE}' does not exist. Aborting."
                exit 1
             fi
            shift 2
@@ -88,7 +85,7 @@ 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)"
@@ -101,9 +98,9 @@ if [ "${multiple_processes}" -gt 0 ] ; then
 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`
+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
+   echo "[$(basename $0)] ** error: the hostfile '${HOSTFILE}' is empty. Aborting." >&2
    exit 1
 fi
 
@@ -119,15 +116,13 @@ APPLICATIONHEAD
 
 ##---- cache hostnames of hostfile---------------
 if [ -n "${HOSTFILE}" ] && [ -f ${HOSTFILE} ]; then
-    hostnames=$(cat ${HOSTFILE} | tr '\n\r' '  ')
-    NUMHOSTS=$(cat ${HOSTFILE} | wc -l)
+    hostnames=$(tr '\n\r' '  ' < ${HOSTFILE})
+    NUMHOSTS=$(wc -l < ${HOSTFILE})
 fi
 
 DESCRIPTIONFILE=$(echo $PROC_ARGS|cut -d' ' -f1)
 
 if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
-    NUMINSTANCES=$(cat ${DESCRIPTIONFILE} | wc -l)
-    replayinstances=$(cat ${DESCRIPTIONFILE})
     IFS_OLD=$IFS
     IFS=$'\n'
     set -f
@@ -138,8 +133,8 @@ if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
         IFS_OLD=
         # generate three lists, one with instance id, ont with instance size, one with files
         instance=$(echo "$line"|cut -d' ' -f1)
-        hosttrace=$(cat $(echo "$line"|cut -d' ' -f2)| tr '\n\r' '  ' )
-        NUMPROCSMINE=$(cat $(echo "$line"|cut -d' ' -f2) | wc -l)
+        hosttrace=$(tr '\n\r' '  ' < $(echo "$line"|cut -d' ' -f2))
+        NUMPROCSMINE=$(wc -l < $(echo "$line"|cut -d' ' -f2))
         
         if [ $NUMPROCSMINE != $(echo "$line"|cut -d' ' -f3) ];
         then
@@ -148,18 +143,18 @@ if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
         fi
         
         sleeptime=$(echo "$line"|cut -d' ' -f4)
-        HAVE_SEQ="`which seq 2>/dev/null`"
+        HAVE_SEQ=$(which seq 2>/dev/null)
 
         if [ -n "${HAVE_SEQ}" ]; then
-            SEQ1=`${HAVE_SEQ} 0 $((${NUMPROCSMINE}-1))`
+            SEQ1=$( ${HAVE_SEQ} 0 $(( NUMPROCSMINE - 1 )) )
         else
             cnt=0
-            while (( $cnt < ${NUMPROCSMINE} )) ; do
-            SEQ1="$SEQ1 $cnt"
-            cnt=$((cnt + 1));
+            while (( cnt < NUMPROCSMINE )) ; do
+                SEQ1="$SEQ1 $cnt"
+                cnt=$((cnt + 1))
             done
         fi
-        #NUMPROCS=$((${NUMPROCS}+${NUMPROCSMINE}));
+        #NUMPROCS=$(( NUMPROCS + NUMPROCSMINE ));
         for i in $SEQ1
 ##----------------------------------------------------------
 ##  generate application.xml with hostnames from hostfile:
@@ -171,7 +166,7 @@ if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
 ##---- generate <actor> tags------------------------------
         do
            if [ -n "${HOSTFILE}" ]; then
-               j=$(( ${NUMPROCS} % ${NUMHOSTS} +1))
+               j=$(( NUMPROCS % NUMHOSTS + 1))
             fi
             hostname=$(echo $hostnames|cut -d' ' -f$j)
             if [ -z "${hostname}" ]; then
@@ -183,11 +178,11 @@ if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then
             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 "    <argument value=\"$(echo $hosttrace|cut -d' ' -f$((i+1)))\"/>" >> ${APPLICATIONTMP}
            
             echo "    <argument value=\"${sleeptime}\"/> <!-- delay -->" >> ${APPLICATIONTMP}
             echo "  </actor>" >> ${APPLICATIONTMP}
-            NUMPROCS=$(( ${NUMPROCS} +1))
+            NUMPROCS=$(( NUMPROCS + 1))
         done
         # return IFS back to newline for "for" loop
         IFS_OLD=$IFS