39 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # This script copies the version from docker-compose.yml to config.json.
 | |
| 
 | |
| app_name=$1
 | |
| 
 | |
| # find all docker-compose files under apps/$app_name (there should be only one)
 | |
| docker_compose_files=$(find apps/$app_name -name docker-compose.yml)
 | |
| 
 | |
| for docker_compose_file in $docker_compose_files
 | |
| do
 | |
| 	# Assuming that the app version will be from the first docker image
 | |
| 	first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
 | |
| 
 | |
| 	image=$(yq .services.$first_service.image $docker_compose_file)
 | |
| 
 | |
| 	# Only apply changes if the format is <image>:<version>
 | |
| 	if [[ "$image" == *":"* ]]; then
 | |
| 	  version=$(cut -d ":" -f2- <<< "$image")
 | |
| 
 | |
| 	  # Trim the "v" prefix
 | |
| 	  trimmed_version=${version/#"v"}
 | |
| 
 | |
| 	  # Find config file
 | |
| 	  config_file=${docker_compose_file/docker-compose.yml/config.json}
 | |
| 
 | |
| 	  current_config_version=$(jq -r '.version' $config_file)
 | |
| 
 | |
| 	  # Update the version in config.json, but only if there's a change
 | |
| 	  if [[ "$current_config_version" != "$trimmed_version" ]]; then
 | |
| 	    contents="$(jq --arg trimmed_version "$trimmed_version" '.version=$trimmed_version' $config_file)"
 | |
| 	    echo "${contents}" > $config_file
 | |
| 
 | |
| 	    tipi_version=$(jq -r '.tipi_version' $config_file)
 | |
| 	    tipi_version=$((tipi_version + 1))
 | |
| 	    contents="$(jq --argjson tipi_version $tipi_version '.tipi_version=$tipi_version' $config_file)"
 | |
| 	    echo "${contents}" > $config_file
 | |
| 	  fi
 | |
| 	fi
 | |
| done | 
