Ein für Shopware 6 vorbereitet Systemmanagment.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

300 lines
7.9 KiB

1 year ago
  1. #!/bin/bash
  2. ### DO NOT EDIT THIS FILE
  3. if [ true != ${includes_project_manager:-false} ]
  4. then
  5. includes_project_manager=true
  6. function getProjectFromShortname {
  7. local shortname="$(getArgument "$1")"
  8. for i in "${!project_manager_shortnames[@]}"
  9. do
  10. if [ "${project_manager_shortnames[$i]}" == "$shortname" ]
  11. then
  12. echo "${project_manager_projects[$i]}"
  13. fi
  14. done
  15. }
  16. function getCustomerFromShortname {
  17. local shortname="$(getArgument "$1")"
  18. for i in "${!project_manager_shortnames[@]}"
  19. do
  20. if [ "${project_manager_shortnames[$i]}" == "$shortname" ]
  21. then
  22. echo "${project_manager_customers[$i]}"
  23. fi
  24. done
  25. }
  26. function loadProjectConfig
  27. {
  28. local shortname="$(getArgument "$1")"
  29. local customer="$(getCustomerFromShortname "$shortname")"
  30. local project="$(getProjectFromShortname "$shortname")"
  31. if [ "$customer" == "" ] || [ "$project" == "" ]
  32. then
  33. echo
  34. echoError "Could not load project with name: $shortname"
  35. echo
  36. exit
  37. fi
  38. local path="$project_manager_dir/data/$customer/$project"
  39. source "$path/etc/config"
  40. }
  41. function loadPluginConfig
  42. {
  43. local shortname="$(getArgument "$1")"
  44. local customer="$(getCustomerFromShortname "$shortname")"
  45. local project="$(getProjectFromShortname "$shortname")"
  46. if [ "$customer" == "" ] || [ "$project" == "" ]
  47. then
  48. echo
  49. echoError "Could not load project with name: $shortname"
  50. echo
  51. exit
  52. fi
  53. local path="$project_manager_dir/data/$customer/$project"
  54. local plugin_path="$project_manager_dir/plugins"
  55. local plugins="$(ls -t "$plugin_path")"
  56. for plugin in ${plugins[*]}
  57. do
  58. if [ -f "$path/etc/plugins/$plugin/config" ]
  59. then
  60. source "$path/etc/plugins/$plugin/config"
  61. fi
  62. done
  63. }
  64. function makeProjectManagerDirectories {
  65. local shortname="$(getArgument "$1")"
  66. local customer="$(getArgument "$2")"
  67. local project="$(getArgument "$3")"
  68. path="$project_manager_dir/data/$customer/$project"
  69. if [ ! -d "$path" ]; then mkdir -p "$path"; fi
  70. if [ ! -d "$path/.ssh" ]; then mkdir "$path/.ssh"; fi
  71. if [ ! -d "$path/backup" ]; then mkdir "$path/backup"; fi
  72. if [ ! -d "$path/backup/database" ]; then mkdir "$path/backup/database"; fi
  73. if [ ! -d "$path/bin" ]; then mkdir "$path/bin"; fi
  74. if [ ! -d "$path/bin/postscripts" ]; then mkdir "$path/bin/postscripts"; fi
  75. if [ ! -d "$path/bin/postscripts/plugins" ]; then mkdir "$path/bin/postscripts/plugins"; fi
  76. if [ ! -d "$path/bin/includes" ]; then mkdir "$path/bin/includes"; fi
  77. if [ ! -d "$path/bin/includes/plugins" ]; then mkdir "$path/bin/includes/plugins"; fi
  78. if [ ! -d "$path/etc" ]; then mkdir "$path/etc"; fi
  79. if [ ! -d "$path/etc/plugins" ]; then mkdir "$path/etc/plugins"; fi
  80. if [ ! -d "$path/shared" ]; then mkdir "$path/shared"; fi
  81. if [ ! -d "$path/shared/live" ]; then mkdir "$path/shared/live"; fi
  82. if [ ! -d "$path/shared/stage" ]; then mkdir "$path/shared/stage"; fi
  83. if [ ! -d "$path/var" ]; then mkdir "$path/var"; fi
  84. if [ ! -d "$path/var/tmp" ]; then mkdir "$path/var/tmp"; fi
  85. if [ ! -d "$path/var/latest" ]; then mkdir "$path/var/latest"; fi
  86. }
  87. function makeWorkspaceDirectories {
  88. local shortname="$(getArgument "$1")"
  89. local customer="$(getArgument "$2")"
  90. local project="$(getArgument "$3")"
  91. if [ ! -d "$project_manager_workspaces_dir/$customer/$project" ]; then mkdir -p "$project_manager_workspaces_dir/$customer/$project"; fi
  92. }
  93. function addProjectConfig {
  94. local shortname="$(getArgument "$1")"
  95. local customer="$(getArgument "$2")"
  96. local project="$(getArgument "$3")"
  97. _addProject "$project"
  98. _addCustomer "$customer"
  99. _addShortname "$shortname"
  100. }
  101. function hasShortname {
  102. local shortname="$(getArgument "$1")"
  103. for i in "${!project_manager_shortnames[@]}"
  104. do
  105. if [ "${project_manager_shortname[$i]}" == "$shortname" ]
  106. then
  107. echo true
  108. fi
  109. done
  110. echo false
  111. }
  112. function hasProject {
  113. local project="$(getArgument "$1")"
  114. for i in "${!project_manager_projects[@]}"
  115. do
  116. if [ "${project_manager_projects[$i]}" == "$project" ]
  117. then
  118. echo true
  119. fi
  120. done
  121. echo false
  122. }
  123. function _addShortname {
  124. local shortname="$(getArgument "$1")"
  125. local hasShortname="$(hasShortname "$shortname")"
  126. if [ "$hasShortname" == true ]
  127. then
  128. echo
  129. echoError "Shortname already exists"
  130. echo
  131. exit
  132. fi
  133. local string='';
  134. for i in "${!project_manager_shortnames[@]}"
  135. do
  136. string+="$(echo -e "\n\t'${project_manager_shortnames[$i]}'")"
  137. done
  138. string+="$(echo -e "\n\t'$shortname'")"
  139. _writeShortnames "$string"
  140. }
  141. function _addProject {
  142. local project="$(getArgument "$1")"
  143. local hasProject="$(hasProject "$project")"
  144. if [ "$hasProject" == true ]
  145. then
  146. echo
  147. echoError "Project already exists"
  148. echo
  149. exit
  150. fi
  151. local string='';
  152. for i in "${!project_manager_projects[@]}"
  153. do
  154. string+="$(echo -e "\n\t'${project_manager_projects[$i]}'")"
  155. done
  156. string+="$(echo -e "\n\t'$project'")"
  157. _writeProjects "$string"
  158. }
  159. function _addCustomer {
  160. local customer="$(getArgument "$1")"
  161. local string='';
  162. for i in "${!project_manager_customers[@]}"
  163. do
  164. string+="$(echo -e "\n\t'${project_manager_customers[$i]}'")"
  165. done
  166. string+="$(echo -e "\n\t'$customer'")"
  167. _writeCustomers "$string"
  168. }
  169. function _writeShortnames {
  170. local string="$(getArgument "$1")"
  171. cat <<- EOF > "$project_manager_dir/etc/shortnames"
  172. #!/bin/bash
  173. project_manager_shortnames=($string
  174. )
  175. EOF
  176. }
  177. function _writeCustomers {
  178. local string="$(getArgument "$1")"
  179. cat <<- EOF > "$project_manager_dir/etc/customers"
  180. #!/bin/bash
  181. project_manager_customers=($string
  182. )
  183. EOF
  184. }
  185. function _writeProjects {
  186. local string="$(getArgument "$1")"
  187. cat <<- EOF > "$project_manager_dir/etc/projects"
  188. #!/bin/bash
  189. project_manager_projects=($string
  190. )
  191. EOF
  192. }
  193. function removeProjectConfig {
  194. local shortname="$(getArgument "$1")"
  195. local pos="$(getProjectConfigPosition "$shortname")"
  196. _removeShortname "$pos"
  197. _removeCustomer "$pos"
  198. _removeProject "$pos"
  199. }
  200. function getProjectConfigPosition {
  201. local shortname="$(getArgument "$1")"
  202. for i in "${!project_manager_shortnames[@]}"
  203. do
  204. if [ "${$project_manager_shortnames[$i]}" == "$shortname" ]
  205. then
  206. ((ret=i+1))
  207. return "$ret"
  208. fi
  209. done
  210. return 0
  211. }
  212. function _removeShortname {
  213. local pos="$(getArgument "$1")"
  214. local string='';
  215. for i in "${!project_manager_shortnames[@]}"
  216. do
  217. ((nr=i+1))
  218. if [ "$pos" == "$nr" ]
  219. then
  220. continue
  221. fi
  222. string+="$(echo -e "\n\t'${project_manager_shortnames[$i]}'")"
  223. done
  224. _writeShortnames "$string"
  225. }
  226. function _removeProjects {
  227. local pos="$(getArgument "$1")"
  228. local string='';
  229. for i in "${!project_manager_projects[@]}"
  230. do
  231. ((nr=i+1))
  232. if [ "$pos" == "$nr" ]
  233. then
  234. continue
  235. fi
  236. string+="$(echo -e "\n\t'${project_manager_projects[$i]}'")"
  237. done
  238. _writeProjects "$string"
  239. }
  240. function _removeCustomer {
  241. local pos="$(getArgument "$1")"
  242. local string='';
  243. for i in "${!project_manager_customers[@]}"
  244. do
  245. ((nr=i+1))
  246. if [ "$pos" == "$nr" ]
  247. then
  248. continue
  249. fi
  250. string+="$(echo -e "\n\t'${project_manager_customers[$i]}'")"
  251. done
  252. _writeCustomers "$string"
  253. }
  254. fi