Refactor service removal process in entrypoint script to streamline deletion of directories, files, and Docker volumes
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		| @@ -160,23 +160,48 @@ remove_additionals() { | ||||
|  | ||||
|     debug "UNINSTALL: $NAME" | ||||
|  | ||||
|     # delete firewall rules | ||||
|     FIREWALLS="" | ||||
|     FIREWALLS="$(ls $SERVICE_DIR/firewall-*.json | grep $NAME)" | ||||
|     for FIREWALL in $(echo $FIREWALLS); do | ||||
|         cat $FIREWALL | jq '.containers[] |= ( | ||||
|         if (.ENVS | map(has("OPERATION")) | any) then | ||||
|             # If any entry has OPERATION key, update it | ||||
|             .ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end] | ||||
|         else | ||||
|             # If no entry has OPERATION key, add new entry | ||||
|             .ENVS += [{"OPERATION": "DELETE"}] | ||||
|         end | ||||
|         )' >$FIREWALL.tmp | ||||
|         debug "$service_exec $FIREWALL.tmp start info" | ||||
|         $service_exec $FIREWALL.tmp start info | ||||
|         rm $FIREWALL.tmp | ||||
|     done | ||||
|  | ||||
|     # delete domains | ||||
|     DOMMAINS="" | ||||
|     DOMAINS="$(ls $SERVICE_DIR/domain-*.json | grep $NAME)" | ||||
|     for DOMAIN in $(echo $DOMAINS); do | ||||
|         cat $DOMAIN | jq '.containers[] |= ( | ||||
|         if (.ENVS | map(has("OPERATION")) | any) then | ||||
|             # If any entry has OPERATION key, update it | ||||
|             .ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end] | ||||
|         else | ||||
|             # If no entry has OPERATION key, add new entry | ||||
|             .ENVS += [{"OPERATION": "DELETE"}] | ||||
|         end | ||||
|         )' >$DOMAIN.tmp | ||||
|         debug "$service_exec $DOMAIN.tmp start info" | ||||
|         $service_exec $DOMAIN.tmp start info | ||||
|         rm $DOMAIN.tmp | ||||
|     done | ||||
|  | ||||
|     # stop service | ||||
|     # force - remove stopped container, docker rm | ||||
|     debug "$service_exec service-$NAME.json stop force dns-remove" | ||||
|     $service_exec service-$NAME.json stop force dns-remove | ||||
|  | ||||
|     # remove related directories and files | ||||
|     # get env files path | ||||
|     ENVIRONMENT_FILES="" | ||||
|     ENVIRONMENT_FILES=$(cat $SERVICE_DIR/service-$NAME.json | jq -r '[.containers[] | select(has("ENV_FILES")) | .ENV_FILES[]] | unique []') | ||||
|  | ||||
|     for ENV_FILE in $(echo $ENVIRONMENT_FILES); do | ||||
|         if [ -f "$ENV_FILE" ]; then | ||||
|             rm $ENV_FILE | ||||
|             debug "deleted env file: $ENV_FILE" | ||||
|         fi | ||||
|     done | ||||
|  | ||||
|     # get volume destinations | ||||
|     DESTINATIONS="" | ||||
|     VOLUMES="" | ||||
| @@ -197,46 +222,8 @@ remove_additionals() { | ||||
|         fi | ||||
|     done | ||||
|  | ||||
|     # delete firewall rules | ||||
|     FIREWALLS="" | ||||
|     FIREWALLS="$(ls $SERVICE_DIR/firewall-*.json | grep $NAME)" | ||||
|     for FIREWALL in $(echo $FIREWALLS); do | ||||
|         cat $FIREWALL | jq '.containers[] |= ( | ||||
|         if (.ENVS | map(has("OPERATION")) | any) then | ||||
|             # If any entry has OPERATION key, update it | ||||
|             .ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end] | ||||
|         else | ||||
|             # If no entry has OPERATION key, add new entry | ||||
|             .ENVS += [{"OPERATION": "DELETE"}] | ||||
|         end | ||||
|         )' >$FIREWALL.tmp | ||||
|         debug "$service_exec $FIREWALL.tmp start info" | ||||
|         $service_exec $FIREWALL.tmp start info | ||||
|         rm $FIREWALL.tmp | ||||
|         rm $FIREWALL | ||||
|     done | ||||
|  | ||||
|     # delete domains | ||||
|     DOMMAINS="" | ||||
|     DOMAINS="$(ls $SERVICE_DIR/domain-*.json | grep $NAME)" | ||||
|     for DOMAIN in $(echo $DOMAINS); do | ||||
|         cat $DOMAIN | jq '.containers[] |= ( | ||||
|         if (.ENVS | map(has("OPERATION")) | any) then | ||||
|             # If any entry has OPERATION key, update it | ||||
|             .ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end] | ||||
|         else | ||||
|             # If no entry has OPERATION key, add new entry | ||||
|             .ENVS += [{"OPERATION": "DELETE"}] | ||||
|         end | ||||
|         )' >$DOMAIN.tmp | ||||
|         debug "$service_exec $DOMAIN.tmp start info" | ||||
|         $service_exec $DOMAIN.tmp start info | ||||
|         rm $DOMAIN.tmp | ||||
|         rm $DOMAIN | ||||
|     done | ||||
|  | ||||
|     # remove service files | ||||
|     #rm $SERVICE_DIR/*"-"$NAME.json # service, domain, etc. | ||||
|     rm $SERVICE_DIR/*"-"$NAME.json # service, domain, etc. | ||||
|  | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user