|  | @@ -17,26 +17,20 @@ handleServices()
 | 
	
		
			
				|  |  |      servicesArray=()
 | 
	
		
			
				|  |  |      invalidServices=false
 | 
	
		
			
				|  |  |      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
 | 
	
		
			
				|  |  | +        if [[ ${validServices[@]} =~ (^|[[:space:]])"$x"($|[[:space:]]) ]]; then
 | 
	
		
			
				|  |  | +            if ! [[ ${services[@]} =~ (^|[[:space:]])"$x"($|[[:space:]]) ]]; then
 | 
	
		
			
				|  |  | +                servicesArray+=("${x}")
 | 
	
		
			
				|  |  | +            fi
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +            if [[ $invalidServices == false ]]; then
 | 
	
		
			
				|  |  | +                invalidServices="${x}"
 | 
	
		
			
				|  |  |              else
 | 
	
		
			
				|  |  | -                if [[ $invalidServices == false ]]; then
 | 
	
		
			
				|  |  | -                    invalidServices="${x}"
 | 
	
		
			
				|  |  | -                else
 | 
	
		
			
				|  |  | -                    invalidServices="${invalidServices} ${x}"
 | 
	
		
			
				|  |  | -                fi
 | 
	
		
			
				|  |  | +                invalidServices="${invalidServices} ${x}"
 | 
	
		
			
				|  |  |              fi
 | 
	
		
			
				|  |  | -        done
 | 
	
		
			
				|  |  | +        fi
 | 
	
		
			
				|  |  |      done
 | 
	
		
			
				|  |  |      if [[ $invalidServices == false && ${#servicesArray[@]} -gt 0 ]]; then
 | 
	
		
			
				|  |  | -        echo "1|" "${servicesArray[@]}"
 | 
	
		
			
				|  |  | +        echo "1|${servicesArray[@]}"
 | 
	
		
			
				|  |  |      elif [[ $invalidServices == false ]]; then
 | 
	
		
			
				|  |  |          echo "1|all"
 | 
	
		
			
				|  |  |      else
 | 
	
	
		
			
				|  | @@ -52,7 +46,7 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then
 | 
	
		
			
				|  |  |          if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then
 | 
	
		
			
				|  |  |              docker-compose up -d
 | 
	
		
			
				|  |  |          elif [[ ${servicesString:0:1} == 1 ]]; then
 | 
	
		
			
				|  |  | -            docker-compose up -d "${servicesString:2}"
 | 
	
		
			
				|  |  | +            docker-compose up -d ${servicesString:2}
 | 
	
		
			
				|  |  |          else
 | 
	
		
			
				|  |  |              echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") start [backend, frontend, mongo, redis]${NC}"
 | 
	
		
			
				|  |  |          fi
 | 
	
	
		
			
				|  | @@ -64,7 +58,7 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then
 | 
	
		
			
				|  |  |          if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then
 | 
	
		
			
				|  |  |              docker-compose stop
 | 
	
		
			
				|  |  |          elif [[ ${servicesString:0:1} == 1 ]]; then
 | 
	
		
			
				|  |  | -            docker-compose stop "${servicesString:2}"
 | 
	
		
			
				|  |  | +            docker-compose stop ${servicesString:2}
 | 
	
		
			
				|  |  |          else
 | 
	
		
			
				|  |  |              echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") stop [backend, frontend, mongo, redis]${NC}"
 | 
	
		
			
				|  |  |          fi
 | 
	
	
		
			
				|  | @@ -77,8 +71,8 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then
 | 
	
		
			
				|  |  |              docker-compose stop
 | 
	
		
			
				|  |  |              docker-compose up -d
 | 
	
		
			
				|  |  |          elif [[ ${servicesString:0:1} == 1 ]]; then
 | 
	
		
			
				|  |  | -            docker-compose stop "${servicesString:2}"
 | 
	
		
			
				|  |  | -            docker-compose up -d "${servicesString:2}"
 | 
	
		
			
				|  |  | +            docker-compose stop ${servicesString:2}
 | 
	
		
			
				|  |  | +            docker-compose up -d ${servicesString:2}
 | 
	
		
			
				|  |  |          else
 | 
	
		
			
				|  |  |              echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") restart [backend, frontend, mongo, redis]${NC}"
 | 
	
		
			
				|  |  |          fi
 | 
	
	
		
			
				|  | @@ -90,7 +84,7 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then
 | 
	
		
			
				|  |  |          if [[ ${servicesString:0:1} == 1 && ${servicesString:2:4} == "all" ]]; then
 | 
	
		
			
				|  |  |              docker-compose build
 | 
	
		
			
				|  |  |          elif [[ ${servicesString:0:1} == 1 ]]; then
 | 
	
		
			
				|  |  | -            docker-compose build "${servicesString:2}"
 | 
	
		
			
				|  |  | +            docker-compose build ${servicesString:2}
 | 
	
		
			
				|  |  |          else
 | 
	
		
			
				|  |  |              echo -e "${RED}${servicesString:2}\n${YELLOW}Usage: $(basename "$0") build [backend, frontend, mongo, redis]${NC}"
 | 
	
		
			
				|  |  |          fi
 | 
	
	
		
			
				|  | @@ -115,11 +109,11 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then
 | 
	
		
			
				|  |  |                  echo -e "${RED}Cancelled reset${NC}"
 | 
	
		
			
				|  |  |              fi
 | 
	
		
			
				|  |  |          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}"
 | 
	
		
			
				|  |  | +            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
 | 
	
		
			
				|  |  | -                docker-compose stop "${servicesString:2}"
 | 
	
		
			
				|  |  | -                docker-compose rm -v --force "${servicesString:2}"
 | 
	
		
			
				|  |  | +                docker-compose stop ${servicesString:2}
 | 
	
		
			
				|  |  | +                docker-compose rm -v --force ${servicesString:2}
 | 
	
		
			
				|  |  |                  if [[ "${servicesString:2}" == *redis* && -d ".redis" ]]; then
 | 
	
		
			
				|  |  |                      rm -rf .redis
 | 
	
		
			
				|  |  |                  fi
 | 
	
	
		
			
				|  | @@ -141,6 +135,7 @@ if [[ -x "$(command -v docker)" && -x "$(command -v docker-compose)" ]]; then
 | 
	
		
			
				|  |  |              if [[ -z $containerId ]]; then
 | 
	
		
			
				|  |  |                  echo -e "${RED}Error: Backend offline, please start to attach.${NC}"
 | 
	
		
			
				|  |  |              else
 | 
	
		
			
				|  |  | +                echo -e "${YELLOW}Detach with CTRL+P+Q${NC}"
 | 
	
		
			
				|  |  |                  docker attach "$containerId"
 | 
	
		
			
				|  |  |              fi
 | 
	
		
			
				|  |  |          else
 |