generate-hpccsystems-target.in 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/bin/bash
  2. want=($(@ADMIN_PATH@/configgen -env @CONFIG_DIR@/@ENV_XML_FILE@ -list | awk 'BEGIN {FS="=|;";} !/dafilesrv/ && !/ftslave/ {printf "%s@%s.service ", $2, $1;}'))
  3. require=($(@ADMIN_PATH@/configgen -env @CONFIG_DIR@/@ENV_XML_FILE@ -t dafilesrv -list | awk 'BEGIN {FS="=|;";} /dafilesrv/ {printf "%s@%s.service", $2, $1;}'))
  4. all=(${want[@]} ${require[@]})
  5. want_string="${want[@]}"
  6. require_string="${require[@]}"
  7. if [[ -e /etc/systemd/system/hpccsystems-platform.target ]]; then
  8. rm -f /etc/systemd/system/hpccsystems-platform.target
  9. fi
  10. rm -f /etc/systemd/system/hpccsystems-platform.target
  11. for instance in "${all[@]}"; do
  12. echo "removing /etc/systemd/system/${instance}"
  13. rm -f /etc/systemd/system/${instance}
  14. done
  15. echo "generating hpccsystems platform target from environment.xml"
  16. mkdir -p @INSTALL_DIR@/etc/systemd/system/gen
  17. cd /etc/systemd/system
  18. cat << EOT >> @INSTALL_DIR@/etc/systemd/system/gen/hpccsystems-platform.target
  19. [Unit]
  20. Description=hpccsystems-platform components
  21. Requires=${require_string}
  22. Wants=${want_string}
  23. EOT
  24. ln -sf @INSTALL_DIR@/etc/systemd/system/gen/hpccsystems-platform.target hpccsystems-platform.target
  25. for ((i=0; i<${#all[@]}; i++)); do
  26. component="$(echo "${all[$i]}" | awk 'BEGIN {FS="[.@]";} {print $1;}')"
  27. instance="$(echo "${all[$i]}" | awk 'BEGIN {FS="[.@]";} {print $2;}')"
  28. sedcmd="sed 's/\[Unit\]/\[Unit\]\nPartOf=hpccsystems-platform.target/g; s/dafilesrv\.service/${require_string}/g; s/%i/${instance}/g' @INSTALL_DIR@/etc/systemd/system/${component}@.service > @INSTALL_DIR@/etc/systemd/system/gen/${all[$i]}"
  29. eval "$sedcmd"
  30. ln -sf @INSTALL_DIR@/etc/systemd/system/gen/${all[$i]} ${all[$i]}
  31. done
  32. systemctl daemon-reload