| 
														
															@@ -8,29 +8,35 @@ YELLOW='\033[0;93m' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 GREEN='\033[0;32m' 
														 | 
														
														 | 
														
															 GREEN='\033[0;32m' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 NC='\033[0m' 
														 | 
														
														 | 
														
															 NC='\033[0m' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-scriptLocation="$(dirname -- $(readlink -fn -- "$0"; echo x))" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-cd "${scriptLocation%x}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+scriptLocation=$(dirname -- "$(readlink -fn -- "$0"; echo x)") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+cd "${scriptLocation%x}" || exit 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 handleServices() 
														 | 
														
														 | 
														
															 handleServices() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 { 
														 | 
														
														 | 
														
															 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     validServices=(backend frontend mongo redis) 
														 | 
														
														 | 
														
															     validServices=(backend frontend mongo redis) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    services=() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    servicesArray=() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     invalidServices=false 
														 | 
														
														 | 
														
															     invalidServices=false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    for x in $@; do 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if [[ ${validServices[@]} =~ (^|[[:space:]])"$x"($|[[:space:]]) ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if ! [[ ${services[@]} =~ (^|[[:space:]])"$x"($|[[:space:]]) ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                services+=("${x}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            fi 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        else 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if [[ $invalidServices == false ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                invalidServices="${x}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    for x in "$@"; do 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        for validService in "${validServices[@]}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        do 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if [[ ${validService} =~ (^|[[:space:]])"$x"($|[[:space:]]) ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                for service in "${servicesArray[@]}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                do 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if ! [[ "$service" =~ (^|[[:space:]])"$x"($|[[:space:]]) ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        servicesArray+=("$x") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                done 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else 
														 | 
														
														 | 
														
															             else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                invalidServices="${invalidServices} ${x}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if [[ $invalidServices == false ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    invalidServices="${x}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    invalidServices="${invalidServices} ${x}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fi 
														 | 
														
														 | 
														
															             fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        fi 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        done 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     done 
														 | 
														
														 | 
														
															     done 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if [[ $invalidServices == false && ${#services[@]} > 0 ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        echo "1|${services[@]}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if [[ $invalidServices == false && ${#servicesArray[@]} -gt 0 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        echo "1|" "${servicesArray[@]}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     elif [[ $invalidServices == false ]]; then 
														 | 
														
														 | 
														
															     elif [[ $invalidServices == false ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo "1|all" 
														 | 
														
														 | 
														
															         echo "1|all" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     else 
														 | 
														
														 | 
														
															     else 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -42,60 +48,60 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     case $1 in 
														 | 
														
														 | 
														
															     case $1 in 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     start) 
														 | 
														
														 | 
														
															     start) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Start Services${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Start Services${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        services=$(handleServices "${@:2}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if [[ ${services:0:1} == 1 && ${services:2:4} == "all" ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        servicesString=$(handleServices "${@:2}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             docker-compose up -d 
														 | 
														
														 | 
														
															             docker-compose up -d 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        elif [[ ${services:0:1} == 1 ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            docker-compose up -d ${services:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        elif [[ ${servicesString:0:1} == 1 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            docker-compose up -d "${servicesString:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            echo -e "${RED}${services:2}\n${YELLOW}Usage: $(basename $0) start [backend, frontend, mongo, redis]${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") start [backend, frontend, mongo, redis]${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fi 
														 | 
														
														 | 
														
															         fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     stop) 
														 | 
														
														 | 
														
															     stop) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Stop Services${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Stop Services${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        services=$(handleServices "${@:2}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if [[ ${services:0:1} == 1 && ${services:2:4} == "all" ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        servicesString=$(handleServices "${@:2}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             docker-compose stop 
														 | 
														
														 | 
														
															             docker-compose stop 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        elif [[ ${services:0:1} == 1 ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            docker-compose stop ${services:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        elif [[ ${servicesString:0:1} == 1 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            docker-compose stop "${servicesString:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            echo -e "${RED}${services:2}\n${YELLOW}Usage: $(basename $0) stop [backend, frontend, mongo, redis]${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") stop [backend, frontend, mongo, redis]${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fi 
														 | 
														
														 | 
														
															         fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     restart) 
														 | 
														
														 | 
														
															     restart) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Restart Services${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Restart Services${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        services=$(handleServices "${@:2}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if [[ ${services:0:1} == 1 && ${services:2:4} == "all" ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        servicesString=$(handleServices "${@:2}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             docker-compose stop 
														 | 
														
														 | 
														
															             docker-compose stop 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             docker-compose up -d 
														 | 
														
														 | 
														
															             docker-compose up -d 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        elif [[ ${services:0:1} == 1 ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            docker-compose stop ${services:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            docker-compose up -d ${services:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        elif [[ ${servicesString:0:1} == 1 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            docker-compose stop "${servicesString:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            docker-compose up -d "${servicesString:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            echo -e "${RED}${services:2}\n${YELLOW}Usage: $(basename $0) restart [backend, frontend, mongo, redis]${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") restart [backend, frontend, mongo, redis]${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fi 
														 | 
														
														 | 
														
															         fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     build) 
														 | 
														
														 | 
														
															     build) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Build Services${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Build Services${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        services=$(handleServices "${@:2}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if [[ ${services:0:1} == 1 && ${services:2:4} == "all" ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        servicesString=$(handleServices "${@:2}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             docker-compose build 
														 | 
														
														 | 
														
															             docker-compose build 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        elif [[ ${services:0:1} == 1 ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            docker-compose build ${services:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        elif [[ ${servicesString:0:1} == 1 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            docker-compose build "${servicesString:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            echo -e "${RED}${services:2}\n${YELLOW}Usage: $(basename $0) build [backend, frontend, mongo, redis]${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") build [backend, frontend, mongo, redis]${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fi 
														 | 
														
														 | 
														
															         fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     reset) 
														 | 
														
														 | 
														
															     reset) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Reset Services${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Reset Services${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        services=$(handleServices "${@:2}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if [[ ${services:0:1} == 1 && ${services:2:4} == "all" ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        servicesString=$(handleServices "${@:2}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             echo -e "${GREEN}Are you sure you want to reset all data? ${YELLOW}[y,n]: ${NC}" 
														 | 
														
														 | 
														
															             echo -e "${GREEN}Are you sure you want to reset all data? ${YELLOW}[y,n]: ${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            read confirm 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            read -r confirm 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if [[ "${confirm}" == y* ]]; then 
														 | 
														
														 | 
														
															             if [[ "${confirm}" == y* ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 docker-compose stop 
														 | 
														
														 | 
														
															                 docker-compose stop 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 docker-compose rm -v --force 
														 | 
														
														 | 
														
															                 docker-compose rm -v --force 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -108,23 +114,23 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else 
														 | 
														
														 | 
														
															             else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 echo -e "${RED}Cancelled reset${NC}" 
														 | 
														
														 | 
														
															                 echo -e "${RED}Cancelled reset${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fi 
														 | 
														
														 | 
														
															             fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        elif [[ ${services:0:1} == 1 ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            echo -e "${GREEN}Are you sure you want to reset all data for $(echo ${services:2} | tr ' ' ',')? ${YELLOW}[y,n]: ${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            read confirm 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        elif [[ ${servicesString:0:1} == 1 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            echo -e "${GREEN}Are you sure you want to reset all data for $(echo "${servicesString:2}" | tr ' ' ',')? ${YELLOW}[y,n]: ${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            read -r confirm 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if [[ "${confirm}" == y* ]]; then 
														 | 
														
														 | 
														
															             if [[ "${confirm}" == y* ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                docker-compose stop ${services:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                docker-compose rm -v --force ${services:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if [[ "${services:2}" == *redis* && -d ".redis" ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                docker-compose stop "${servicesString:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                docker-compose rm -v --force "${servicesString:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if [[ "${servicesString:2}" == *redis* && -d ".redis" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     rm -rf .redis 
														 | 
														
														 | 
														
															                     rm -rf .redis 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 fi 
														 | 
														
														 | 
														
															                 fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if [[ "${services:2}" == *mongo* && -d ".db" ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if [[ "${servicesString:2}" == *mongo* && -d ".db" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     rm -rf .db 
														 | 
														
														 | 
														
															                     rm -rf .db 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 fi 
														 | 
														
														 | 
														
															                 fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else 
														 | 
														
														 | 
														
															             else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 echo -e "${RED}Cancelled reset${NC}" 
														 | 
														
														 | 
														
															                 echo -e "${RED}Cancelled reset${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fi 
														 | 
														
														 | 
														
															             fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            echo -e "${RED}${services:2}\n${YELLOW}Usage: $(basename $0) build [backend, frontend, mongo, redis]${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") build [backend, frontend, mongo, redis]${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fi 
														 | 
														
														 | 
														
															         fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -135,10 +141,10 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if [[ -z $containerId ]]; then 
														 | 
														
														 | 
														
															             if [[ -z $containerId ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 echo -e "${RED}Error: Backend offline, please start to attach.${NC}" 
														 | 
														
														 | 
														
															                 echo -e "${RED}Error: Backend offline, please start to attach.${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else 
														 | 
														
														 | 
														
															             else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                docker attach $containerId 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                docker attach "$containerId" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fi 
														 | 
														
														 | 
														
															             fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            echo -e "${RED}Invalid service $2\n${YELLOW}Usage: $(basename $0) attach backend${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            echo -e "${RED}Invalid service $2\n${YELLOW}Usage: $(basename "$0") attach backend${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fi 
														 | 
														
														 | 
														
															         fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -161,7 +167,7 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 docker-compose exec backend npx eslint app/logic $fix 
														 | 
														
														 | 
														
															                 docker-compose exec backend npx eslint app/logic $fix 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 ;; 
														 | 
														
														 | 
														
															                 ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             *) 
														 | 
														
														 | 
														
															             *) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                echo -e "${RED}Invalid service $2\n${YELLOW}Usage: $(basename $0) eslint [backend, frontend] [fix]${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                echo -e "${RED}Invalid service $2\n${YELLOW}Usage: $(basename "$0") eslint [backend, frontend] [fix]${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 ;; 
														 | 
														
														 | 
														
															                 ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         esac 
														 | 
														
														 | 
														
															         esac 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -169,12 +175,12 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     update) 
														 | 
														
														 | 
														
															     update) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Update${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Update${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         git fetch 
														 | 
														
														 | 
														
															         git fetch 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if [[ $(git rev-parse HEAD) == $(git rev-parse @{u}) ]]; then 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if [[ $(git rev-parse HEAD) == $(git rev-parse @\{u\}) ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             echo -e "${GREEN}Already up to date${NC}" 
														 | 
														
														 | 
														
															             echo -e "${GREEN}Already up to date${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            dbChange=$(git log --name-only --oneline HEAD..origin/$(git rev-parse --abbrev-ref HEAD) | grep "backend/logic/db/schemas") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            fcChange=$(git log --name-only --oneline HEAD..origin/$(git rev-parse --abbrev-ref HEAD) | grep "frontend/dist/config/template.json") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            bcChange=$(git log --name-only --oneline HEAD..origin/$(git rev-parse --abbrev-ref HEAD) | grep "backend/config/template.json") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            dbChange=$(git log --name-only --oneline HEAD..origin/"$(git rev-parse --abbrev-ref HEAD)" | grep "backend/logic/db/schemas") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fcChange=$(git log --name-only --oneline HEAD..origin/"$(git rev-parse --abbrev-ref HEAD)" | grep "frontend/dist/config/template.json") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            bcChange=$(git log --name-only --oneline HEAD..origin/"$(git rev-parse --abbrev-ref HEAD)" | grep "backend/config/template.json") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if [[ ( $2 == "auto" && -z $dbChange && -z $fcChange && -z $bcChange ) || -z $2 ]]; then 
														 | 
														
														 | 
														
															             if [[ ( $2 == "auto" && -z $dbChange && -z $fcChange && -z $bcChange ) || -z $2 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 echo -e "${CYAN}Updating...${NC}" 
														 | 
														
														 | 
														
															                 echo -e "${CYAN}Updating...${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 git pull 
														 | 
														
														 | 
														
															                 git pull 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -199,12 +205,13 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     logs) 
														 | 
														
														 | 
														
															     logs) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Logs${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Logs${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        docker-compose logs ${@:2} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        docker-compose logs "${@:2}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ;; 
														 | 
														
														 | 
														
															         ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     backup) 
														 | 
														
														 | 
														
															     backup) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Backup${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Backup${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if [[ -f .env ]]; then 
														 | 
														
														 | 
														
															         if [[ -f .env ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # shellcheck disable=SC1091 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             source .env 
														 | 
														
														 | 
														
															             source .env 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if [[ ! -d "${scriptLocation%x}/backups" ]]; then 
														 | 
														
														 | 
														
															             if [[ ! -d "${scriptLocation%x}/backups" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 echo -e "${YELLOW}Creating backup directory at ${scriptLocation%x}/backups${NC}" 
														 | 
														
														 | 
														
															                 echo -e "${YELLOW}Creating backup directory at ${scriptLocation%x}/backups${NC}" 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -220,10 +227,11 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     restore) 
														 | 
														
														 | 
														
															     restore) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Restore${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Restore${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if [[ -f .env ]]; then 
														 | 
														
														 | 
														
															         if [[ -f .env ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # shellcheck disable=SC1091 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             source .env 
														 | 
														
														 | 
														
															             source .env 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if [[ -z $2 ]]; then 
														 | 
														
														 | 
														
															             if [[ -z $2 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 echo -e "${GREEN}Please enter the full path of the dump you wish to restore: ${NC}" 
														 | 
														
														 | 
														
															                 echo -e "${GREEN}Please enter the full path of the dump you wish to restore: ${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                read restoreFile 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                read -r restoreFile 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else 
														 | 
														
														 | 
														
															             else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 restoreFile=$2 
														 | 
														
														 | 
														
															                 restoreFile=$2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fi 
														 | 
														
														 | 
														
															             fi 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -234,7 +242,7 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             elif [[ ! -f ${restoreFile} ]]; then 
														 | 
														
														 | 
														
															             elif [[ ! -f ${restoreFile} ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 echo -e "${RED}Error: no file at restore path given, cancelled restoration.${NC}" 
														 | 
														
														 | 
														
															                 echo -e "${RED}Error: no file at restore path given, cancelled restoration.${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else 
														 | 
														
														 | 
														
															             else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                docker-compose exec -T mongo sh -c "mongorestore --authenticationDatabase musare -u ${MONGO_USER_USERNAME} -p ${MONGO_USER_PASSWORD} --archive" < ${restoreFile} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                docker-compose exec -T mongo sh -c "mongorestore --authenticationDatabase musare -u ${MONGO_USER_USERNAME} -p ${MONGO_USER_PASSWORD} --archive" < "${restoreFile}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fi 
														 | 
														
														 | 
														
															             fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             echo -e "${RED}Error: .env does not exist${NC}" 
														 | 
														
														 | 
														
															             echo -e "${RED}Error: .env does not exist${NC}" 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -244,33 +252,34 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     admin) 
														 | 
														
														 | 
														
															     admin) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         echo -e "${CYAN}Musare | Add Admin${NC}" 
														 | 
														
														 | 
														
															         echo -e "${CYAN}Musare | Add Admin${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if [[ -f .env ]]; then 
														 | 
														
														 | 
														
															         if [[ -f .env ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # shellcheck disable=SC1091 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             source .env 
														 | 
														
														 | 
														
															             source .env 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if [[ $2 == "add" ]]; then 
														 | 
														
														 | 
														
															             if [[ $2 == "add" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if [[ -z $3 ]]; then 
														 | 
														
														 | 
														
															                 if [[ -z $3 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     echo -e "${GREEN}Please enter the username of the user you wish to make an admin: ${NC}" 
														 | 
														
														 | 
														
															                     echo -e "${GREEN}Please enter the username of the user you wish to make an admin: ${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    read adminUser 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    read -r adminUser 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 else 
														 | 
														
														 | 
														
															                 else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     adminUser=$3 
														 | 
														
														 | 
														
															                     adminUser=$3 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 fi 
														 | 
														
														 | 
														
															                 fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if [[ -z $adminUser ]]; then 
														 | 
														
														 | 
														
															                 if [[ -z $adminUser ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     echo -e "${RED}Error: Username for new admin not provided.${NC}" 
														 | 
														
														 | 
														
															                     echo -e "${RED}Error: Username for new admin not provided.${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 else 
														 | 
														
														 | 
														
															                 else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    docker-compose exec mongo mongo musare -u ${MONGO_USER_USERNAME} -p ${MONGO_USER_PASSWORD} --eval "db.users.update({username: '${adminUser}'}, {\$set: {role: 'admin'}})" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    docker-compose exec mongo mongo musare -u "${MONGO_USER_USERNAME}" -p "${MONGO_USER_PASSWORD}" --eval "db.users.update({username: '${adminUser}'}, {\$set: {role: 'admin'}})" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 fi 
														 | 
														
														 | 
														
															                 fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             elif [[ $2 == "remove" ]]; then 
														 | 
														
														 | 
														
															             elif [[ $2 == "remove" ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if [[ -z $3 ]]; then 
														 | 
														
														 | 
														
															                 if [[ -z $3 ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     echo -e "${GREEN}Please enter the username of the user you wish to remove as admin: ${NC}" 
														 | 
														
														 | 
														
															                     echo -e "${GREEN}Please enter the username of the user you wish to remove as admin: ${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    read adminUser 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    read -r adminUser 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 else 
														 | 
														
														 | 
														
															                 else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     adminUser=$3 
														 | 
														
														 | 
														
															                     adminUser=$3 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 fi 
														 | 
														
														 | 
														
															                 fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if [[ -z $adminUser ]]; then 
														 | 
														
														 | 
														
															                 if [[ -z $adminUser ]]; then 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     echo -e "${RED}Error: Username for new admin not provided.${NC}" 
														 | 
														
														 | 
														
															                     echo -e "${RED}Error: Username for new admin not provided.${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 else 
														 | 
														
														 | 
														
															                 else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    docker-compose exec mongo mongo musare -u ${MONGO_USER_USERNAME} -p ${MONGO_USER_PASSWORD} --eval "db.users.update({username: '${adminUser}'}, {\$set: {role: 'default'}})" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    docker-compose exec mongo mongo musare -u "${MONGO_USER_USERNAME}" -p "${MONGO_USER_PASSWORD}" --eval "db.users.update({username: '${adminUser}'}, {\$set: {role: 'default'}})" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 fi 
														 | 
														
														 | 
														
															                 fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else 
														 | 
														
														 | 
														
															             else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                echo -e "${RED}Invalid command $2\n${YELLOW}Usage: $(basename $0) admin [add,remove] username${NC}" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                echo -e "${RED}Invalid command $2\n${YELLOW}Usage: $(basename "$0") admin [add,remove] username${NC}" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fi 
														 | 
														
														 | 
														
															             fi 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else 
														 | 
														
														 | 
														
															         else 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             echo -e "${RED}Error: .env does not exist${NC}" 
														 | 
														
														 | 
														
															             echo -e "${RED}Error: .env does not exist${NC}" 
														 |