Fdel_keys.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/bash
  2. ######################################################
  3. # Author : Simona Flavoni for NEMO
  4. # Contact : sflod@locean-ipsl.upmc.fr
  5. #
  6. # Some functions called from makenemo
  7. # Fdel_keys : del keys in cpp.fcm file
  8. ######################################################
  9. #set -x
  10. set -o posix
  11. #set -u
  12. #set -e
  13. #+
  14. #
  15. # ================
  16. # Fdel_keys.sh
  17. # ================
  18. #
  19. # --------------------------
  20. # Add compilation keys
  21. # --------------------------
  22. #
  23. # SYNOPSIS
  24. # ========
  25. #
  26. # ::
  27. #
  28. # $ Fdel_keys.sh CONFIG_NAME del_key "LIST_KEYS"
  29. #
  30. #
  31. # DESCRIPTION
  32. # ===========
  33. #
  34. #
  35. # Add cpp keys when compiling a configuration, key list has to be enclosed with " ".
  36. # We perform a 'sed' on the CONFIG_NAME/CPP.fcm file, containing the list of keys.
  37. #
  38. # EXAMPLES
  39. # ========
  40. #
  41. # ::
  42. #
  43. # $ ./Fdel_keys.sh CONFIG_NAME del_key "key_agrif"
  44. #
  45. #
  46. # TODO
  47. # ====
  48. #
  49. # option debug
  50. #
  51. #
  52. # EVOLUTIONS
  53. # ==========
  54. #
  55. # $Id: Fdel_keys.sh 2158 2010-10-20 17:30:03Z sflod $
  56. #
  57. #
  58. #
  59. # * creation
  60. #
  61. #-
  62. echo "Removing keys in : ${NEW_CONF}"
  63. for i in ${list_del_key} ; do
  64. if [ "$(echo ${i} | grep -c key_nproc )" -ne 0 ] ; then
  65. sed -e "s/key_nproc[ij]=.* //" ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm \
  66. > ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm.tmp
  67. mv ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm.tmp ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm
  68. echo " "
  69. elif [ "$(cat ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm | grep -c "$i" )" -ne 0 ]; then
  70. sed -e "s/\b${i}\b//" ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm \
  71. > ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm.tmp
  72. mv ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm.tmp ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm
  73. echo "deleted key $i in ${NEW_CONF}"
  74. fi
  75. done
  76. unset -v list_del_key