diff --git a/makenemo b/makenemo index 2e04982061101e237a5998f41f2d173031724327..958793021f75258b4171e548d2748212dc74c1e1 100755 --- a/makenemo +++ b/makenemo @@ -313,7 +313,7 @@ else echo fi if [[ -n "${x_d}" || ${DO_NEW:-0} -eq 1 ]]; then - [ -f ${CFG_DIR}/work_cfgs.txt ] && sed -i "/^${CUR_CONF} /d" ${CFG_DIR}/work_cfgs.txt + [ -f ${CFG_DIR}/work_cfgs.txt ] && sed -i'' -e "/^${CUR_CONF} /d" ${CFG_DIR}/work_cfgs.txt echo ${CUR_CONF} "${NEM_SUBDIR[*]}" >> ${CFG_DIR}/work_cfgs.txt fi @@ -343,7 +343,7 @@ fi # CPP keys check if [ $chk_key -eq 1 ] ; then - for kk in $( sed -n "s/bld::tool::fppkeys \+//p" ${NEMO_TDIR}/${CUR_CONF}/cpp_${CUR_CONF}.fcm ); do + for kk in $( sed -n -e "s/bld::tool::fppkeys \+//p" ${NEMO_TDIR}/${CUR_CONF}/cpp_${CUR_CONF}.fcm ); do if ! grep -q $kk ${NEMO_TDIR}/${CUR_CONF}/BLD/full_key_list.txt; then echo echo "E R R O R : key "$kk" is not found in ${NEMO_TDIR}/${CUR_CONF}/WORK routines..." diff --git a/mk/Fadd_keys.sh b/mk/Fadd_keys.sh index d563a75adb5afdfdac950d53a1d091e33b4fdc43..dce6699bd30a0f38fabe9c3542d79bc00c32ac4c 100755 --- a/mk/Fadd_keys.sh +++ b/mk/Fadd_keys.sh @@ -69,7 +69,7 @@ for i in ${2} ; do if [ "$(cat ${1}/cpp_$(basename ${1}).fcm | grep -c "\<$i\>" )" -ne 0 ] ; then echo "key $i already present in cpp_$(basename ${1}).fcm" else - sed -i "s/$/ ${i}/" ${1}/cpp_$(basename ${1}).fcm + sed -i'' -e "s/$/ ${i}/" ${1}/cpp_$(basename ${1}).fcm echo "added key $i in $(basename ${1})" fi done diff --git a/mk/Fcheck_archfile.sh b/mk/Fcheck_archfile.sh index b57a6aa389d8fcac6397bdf5ba1757715045c759..2602bc83bde4b7caaa359093d343fbc18269d1f5 100755 --- a/mk/Fcheck_archfile.sh +++ b/mk/Fcheck_archfile.sh @@ -222,11 +222,11 @@ if [ -n "${4}" ]; then exit 1 fi # duplicate the lines starting with %DEBUG_XXX and replace, in the duplicated line, %DEBUG_XXX by %XXX - sed -i "/^%DEBUG_/{p;s/^%DEBUG_\([^ ]*\)/%\1/;}" $1 + sed -i'' -e "/^%DEBUG_/{p;s/^%DEBUG_\([^ ]*\)/%\1/;}" $1 else if (! grep -q "^%PROD_FCFLAGS" $1 ); then echo "WARNING: '%PROD_FCFLAGS' not defined in your arch file, makenemo will use '%FCFLAGS' instead" fi # duplicate the lines starting with %PROD_XXX and replace, in the duplicated line, %PROD_XXX by %XXX - sed -i "/^%PROD_/{p;s/^%PROD_\([^ ]*\)/%\1/;}" $1 + sed -i'' -e "/^%PROD_/{p;s/^%PROD_\([^ ]*\)/%\1/;}" $1 fi diff --git a/mk/Fclean_config.sh b/mk/Fclean_config.sh index 19ca4f060de8034e108a07940d67e0f33c2e8c20..0b591c6bca1aa480877833eb34bd34aa3bd54f26 100755 --- a/mk/Fclean_config.sh +++ b/mk/Fclean_config.sh @@ -73,12 +73,12 @@ else echo " " echo "Are you sure that you want to remove this directory $CONF? [y/n] " read answer - answer=`echo $answer | sed 's/^[y].*$/y/'` + answer=`echo $answer | sed -e 's/^[y].*$/y/'` if [ -z "$answer" -o "x$answer" = "xy" ]; then rm -rf ${CONFIG_DIR}/${CONF} - sed -i "/^${CONF} /d" ${CONFIG_DIR}/work_cfgs.txt > ${CONFIG_DIR}/work_cfgs.tmp + sed -i'' -e "/^${CONF} /d" ${CONFIG_DIR}/work_cfgs.txt > ${CONFIG_DIR}/work_cfgs.tmp echo "${CONF} configuration REMOVED" else diff --git a/mk/Fdel_keys.sh b/mk/Fdel_keys.sh index 4bbcd38b82543dfbd0cc44f7db4bf648c605a5da..82e4234607fa24fbca3e2ccf45194e3c4f92fa34 100755 --- a/mk/Fdel_keys.sh +++ b/mk/Fdel_keys.sh @@ -64,9 +64,9 @@ echo "Removing keys ${2} in : ${1}" for i in ${2} ; do if [ "$(echo ${i} | grep -c key_nproc )" -gt 0 ]; then - sed -i "s/key_nproc[ij]=.* //" ${1}/cpp_$(basename ${1}).fcm + sed -i'' -e "s/key_nproc[ij]=.* //" ${1}/cpp_$(basename ${1}).fcm elif [ "$(cat ${1}/cpp_$(basename ${1}).fcm | grep -c "$i")" -gt 0 ]; then - sed -i "s/\b${i}\b//" ${1}/cpp_$(basename ${1}).fcm + sed -i'' -e "s/\b${i}\b//" ${1}/cpp_$(basename ${1}).fcm echo "deleted key $i in $(basename ${1})" fi done diff --git a/mk/Flist_archfile.sh b/mk/Flist_archfile.sh index 506f620bc827b96bad1b7fcabf5f552e27258753..ed587eb949945aa5938ff17aff3211bc1a2a0565 100755 --- a/mk/Flist_archfile.sh +++ b/mk/Flist_archfile.sh @@ -58,7 +58,7 @@ set -o posix archfile_loop() { for file in $( ls $1/*.fcm ); do - zvar1=$( basename $file | sed 's/arch-\(.*\).fcm/\1/' ) + zvar1=$( basename $file | sed -e 's/arch-\(.*\).fcm/\1/' ) zvar2=$( head -1 $file | tr -d '#' ) printf "%-30s %-s\n" ${zvar1} "${zvar2}" done diff --git a/mk/Fmake_config.sh b/mk/Fmake_config.sh index ae844c4023a0aaaa9c3a38b0f9ae43026b69a2d8..4020855cb5b7e47d50478834f25193abcb5d615f 100755 --- a/mk/Fmake_config.sh +++ b/mk/Fmake_config.sh @@ -54,9 +54,29 @@ set -o posix # * creation # #- +# function to mimic "readlink -f" command (not available on MacOS) +# source: https://stackoverflow.com/a/1116890 +rlf () +{ + TARGET_FILE=$1; + cd `dirname $TARGET_FILE`; + TARGET_FILE=`basename $TARGET_FILE`; + while [ -L "$TARGET_FILE" ]; do + TARGET_FILE=`readlink $TARGET_FILE`; + cd `dirname $TARGET_FILE`; + TARGET_FILE=`basename $TARGET_FILE`; + done; + PHYS_DIR=`pwd -P`; + RESULT=$PHYS_DIR/$TARGET_FILE; + echo $RESULT +} + [ ! -d ${1} ] && \mkdir -p ${1} + +# CPP [ "${2}" != "${1}" ] && \cp -n ${2}/cpp_${2##*/}.fcm ${1}/cpp_${1##*/}.fcm -# + +# EXP00 if [ ! -d ${1}/EXP00 ] then echo " Creating ${1}/EXP00" @@ -64,20 +84,21 @@ then echo " -> Copying existing xml, namelist and AGRIF_FixedGrids.in files from ${2}/EXPREF to ${1}/EXP00" for f in $( ls -1 ${2}/EXPREF/*.xml ${2}/EXPREF/*namelist* ${2}/EXPREF/AGRIF_FixedGrids.in 2>/dev/null ) do - if [[ -L ${f} && $( readlink -f ${f} ) =~ "SHARED" ]] + if [[ -L ${f} && $( rlf ${f} ) =~ "SHARED" ]] then # create absolute(relative) symlinks if config directory is outside(inside) nemo directory if [[ $(dirname ${1}) != $(dirname ${2}) ]]; then - \ln -sf $( readlink -f ${f} ) ${1}/EXP00/$( basename ${f} ) # keep link from SHARED + \ln -sf $( rlf ${f} ) ${1}/EXP00/$( basename ${f} ) # keep link from SHARED else - (cd ${1}/EXP00; \ln -sf ../../../cfgs/SHARED/$(basename $(readlink -f ${f}) ) $( basename ${f} )) + (cd ${1}/EXP00; \ln -sf ../../../cfgs/SHARED/$(basename $(rlf ${f}) ) $( basename ${f} )) fi else \cp ${f} ${1}/EXP00/. fi done fi -# + +# MY_SRC if [ ! -d ${1}/MY_SRC ] then if [ -d ${2}/MY_SRC ] diff --git a/mk/Fread_dir.sh b/mk/Fread_dir.sh index 2e92921abff7c117ac525cb4eed4f1437c5774d6..27b989c837cd3e636fa8931bd878f7250a0986b7 100755 --- a/mk/Fread_dir.sh +++ b/mk/Fread_dir.sh @@ -55,7 +55,7 @@ set -o posix if [ "$2" == "YES" ]; then echo -n " $1 [Y/n] " read answer - answer=`echo $answer | sed 's/^[yY].*$/y/'` + answer=`echo $answer | sed -e 's/^[yY].*$/y/'` if [ -z "$answer" -o "x$answer" = "xy" ]; then TAB[$ind]="$1" let ind=ind+1 @@ -69,7 +69,7 @@ if [ "$2" == "YES" ]; then else echo -n " $1 [y/N] " read answer - answer=`echo $answer | sed 's/^[nN].*$/N/'` + answer=`echo $answer | sed -e 's/^[nN].*$/N/'` if [ "x$answer" = "xy" ]; then TAB[$ind]="$1" let ind=ind+1