control.sh 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #!/usr/bin/env bash
  2. set -o pipefail # trace ERR through pipes
  3. set -o errtrace # trace ERR through 'time command' and other functions
  4. set -o nounset ## set -u : exit the script if you try to use an uninitialised variable
  5. set -o errexit ## set -e : exit the script if any statement returns a non-true return value
  6. source /opt/docker/bin/config.sh
  7. rootCheck "$0"
  8. CONTROL_COMMAND="$1"
  9. shift
  10. case "$CONTROL_COMMAND" in
  11. ## ------------------------------------------
  12. ## PROVISION
  13. ## ------------------------------------------
  14. ## main roles
  15. "provision.role")
  16. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag bootstrap --tag build --tag onbuild [role]<< for adding provision roles"
  17. /opt/docker/bin/provision add --tag bootstrap --tag build --tag onbuild --tag entrypoint "$1"
  18. ;;
  19. "provision.role.bootstrap")
  20. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag bootstrap [role]<< for adding provision roles"
  21. /opt/docker/bin/provision add --tag bootstrap "$1"
  22. ;;
  23. "provision.role.build")
  24. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag build [role]<< for adding provision roles"
  25. /opt/docker/bin/provision add --tag build "$1"
  26. ;;
  27. "provision.role.onbuild")
  28. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag onbuild [role]<< for adding provision roles"
  29. /opt/docker/bin/provision add --tag onbuild "$1"
  30. ;;
  31. "provision.role.entrypoint")
  32. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag entrypoint [role]<< for adding provision roles"
  33. /opt/docker/bin/provision add --tag entrypoint "$1"
  34. ;;
  35. ## startup roles
  36. "provision.role.startup")
  37. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag bootstrap --tag build --tag onbuild --priority 50 [role]<< for adding provision roles"
  38. /opt/docker/bin/provision add --tag bootstrap --tag build --tag onbuild --tag entrypoint --priority 50 "$1"
  39. ;;
  40. "provision.role.startup.bootstrap")
  41. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag bootstrap --priority 50 [role]<< for adding provision roles"
  42. /opt/docker/bin/provision add --tag bootstrap --priority 50 "$1"
  43. ;;
  44. "provision.role.startup.build")
  45. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag build --priority 50 [role]<< for adding provision roles"
  46. /opt/docker/bin/provision add --tag build --priority 50 "$1"
  47. ;;
  48. "provision.role.startup.onbuild")
  49. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag onbuild --priority 50 [role]<< for adding provision roles"
  50. /opt/docker/bin/provision add --tag onbuild --priority 50 "$1"
  51. ;;
  52. "provision.role.startup.entrypoint")
  53. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag entrypoint --priority 50 [role]<< for adding provision roles"
  54. /opt/docker/bin/provision add --tag entrypoint --priority 50 "$1"
  55. ;;
  56. ## finish roles
  57. "provision.role.finish")
  58. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag bootstrap --tag build --tag onbuild --priority 200 [role]<< for adding provision roles"
  59. /opt/docker/bin/provision add --tag bootstrap --tag build --tag onbuild --tag entrypoint --priority 200 "$1"
  60. ;;
  61. "provision.role.finish.bootstrap")
  62. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag bootstrap --priority 200 [role]<< for adding provision roles"
  63. /opt/docker/bin/provision add --tag bootstrap --priority 200 "$1"
  64. ;;
  65. "provision.role.finish.build")
  66. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag build --priority 200 [role]<< for adding provision roles"
  67. /opt/docker/bin/provision add --tag build --priority 200 "$1"
  68. ;;
  69. "provision.role.finish.onbuild")
  70. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag onbuild --priority 200 [role]<< for adding provision roles"
  71. /opt/docker/bin/provision add --tag onbuild --priority 200 "$1"
  72. ;;
  73. "provision.role.finish.entrypoint")
  74. deprecationNotice " Please use >>/opt/docker/bin/provision add --tag entrypoint --priority 200 [role]<< for adding provision roles"
  75. /opt/docker/bin/provision add --tag entrypoint --priority 200 "$1"
  76. ;;
  77. ## ------------------------------------------
  78. ## Service
  79. ## ------------------------------------------
  80. "service.enable")
  81. deprecationNotice " Please use >>docker-service-enable [service]<<"
  82. docker-service-enable "$1"
  83. ;;
  84. "service.disable")
  85. deprecationNotice " Please use >>docker-service-disable [service]<<"
  86. docker-service-disable "$1"
  87. ;;
  88. ## ------------------------------------------
  89. ## Version
  90. ## ------------------------------------------
  91. "version.get")
  92. cat /opt/docker/VERSION
  93. ;;
  94. "version.require.min")
  95. EXPECTED_VERSION="$1"
  96. CURRENT_VERSION="$(cat /opt/docker/VERSION)"
  97. if [ "$CURRENT_VERSION" -lt "$EXPECTED_VERSION" ]; then
  98. echo "-----------------------------------------------------------"
  99. echo "--- This docker image is not up2date!"
  100. echo "--- "
  101. echo "--- Version expected min: $EXPECTED_VERSION"
  102. echo "--- Version current: $CURRENT_VERSION"
  103. echo "--- "
  104. echo "--- Run 'docker pull <imagename>' to update image"
  105. echo "-----------------------------------------------------------"
  106. exit 1
  107. fi
  108. ;;
  109. "version.require.max")
  110. EXPECTED_VERSION="$1"
  111. CURRENT_VERSION="$(cat /opt/docker/VERSION)"
  112. if [ "$CURRENT_VERSION" -gt "$EXPECTED_VERSION" ]; then
  113. echo "-----------------------------------------------------------"
  114. echo "--- This docker image is too new!"
  115. echo "--- "
  116. echo "--- Version expected max: $EXPECTED_VERSION"
  117. echo "--- Version current: $CURRENT_VERSION"
  118. echo "-----------------------------------------------------------"
  119. exit 1
  120. fi
  121. ;;
  122. "buildtime.get")
  123. cat /opt/docker/BUILDTIME
  124. ;;
  125. *)
  126. echo "[ERROR] Invalid controll command: \"${CONTROL_COMMAND}\""
  127. exit 1
  128. ;;
  129. esac