88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| set -ex
 | |
| 
 | |
| if [ -z "$1" ]; then
 | |
|     echo "Usage: $0 <folder-with-bundles>"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| FOLDER=$1
 | |
| 
 | |
| if [ ! -e .version ] || [ ! -e .release_date ]; then
 | |
|     echo "This script should be executed in the root of an extracted source tarball"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| # Find the name based on the version
 | |
| if [ -e .is_stable ]; then
 | |
|     isTesting=$(cat .version | grep "RC\|beta" || true)
 | |
|     if [ -z "${isTesting}" ]; then
 | |
|         NAME="stable"
 | |
|     else
 | |
|         NAME="testing"
 | |
|     fi
 | |
| else
 | |
|     NAME=$(cat .version | cut -d- -f2 | cut -d- -f-2)
 | |
| fi
 | |
| 
 | |
| # Convert the date to a YAML date
 | |
| DATE=$(cat .release_date | tr ' ' T | sed 's/TUTC/:00-00:00/')
 | |
| VERSION=$(cat .version)
 | |
| BASE="openttd-${VERSION}"
 | |
| 
 | |
| echo "name: ${NAME}" > manifest.yaml
 | |
| echo "date: ${DATE}" >> manifest.yaml
 | |
| echo "base: ${BASE}-" >> manifest.yaml
 | |
| 
 | |
| error=""
 | |
| 
 | |
| FILES=
 | |
| DEV_FILES=
 | |
| for filename in $(ls ${FOLDER} | grep -v ".txt$\|.md$\|sum$" | sort); do
 | |
|     case ${filename} in
 | |
|         *docs*   |\
 | |
|         *source* |\
 | |
|         *dbg.deb |\
 | |
|         *pdb.xz  )
 | |
|             DEV_FILES="${DEV_FILES} ${filename}"
 | |
|             ;;
 | |
| 
 | |
|         *)
 | |
|             FILES="${FILES} ${filename}"
 | |
|             ;;
 | |
|     esac
 | |
| done
 | |
| 
 | |
| # output_files key filename...
 | |
| output_files() {
 | |
|     if [ "$#" -lt 2 ]; then return; fi
 | |
|     key=$1
 | |
|     echo "${key}:" >> manifest.yaml
 | |
|     shift
 | |
|     while [ "$#" -gt 0 ]; do
 | |
|         filename=$1
 | |
|         if [ ! -e ${FOLDER}/${filename}.md5sum ] || [ ! -e ${FOLDER}/${filename}.sha1sum ] || [ ! -e ${FOLDER}/${filename}.sha256sum ]; then
 | |
|             echo "ERROR: missing checksum file for ${filename}" 1>&2
 | |
|             error="y"
 | |
|             shift
 | |
|             continue
 | |
|         fi
 | |
| 
 | |
|         echo "- id: ${filename}" >> manifest.yaml
 | |
|         echo "  size: $(stat -c"%s" ${FOLDER}/${filename})" >> manifest.yaml
 | |
|         echo "  md5sum: $(cat ${FOLDER}/${filename}.md5sum | cut -d\  -f1)" >> manifest.yaml
 | |
|         echo "  sha1sum: $(cat ${FOLDER}/${filename}.sha1sum | cut -d\  -f1)" >> manifest.yaml
 | |
|         echo "  sha256sum: $(cat ${FOLDER}/${filename}.sha256sum | cut -d\  -f1)" >> manifest.yaml
 | |
|         shift
 | |
|     done
 | |
| }
 | |
| 
 | |
| output_files files ${FILES}
 | |
| output_files dev_files ${DEV_FILES}
 | |
| 
 | |
| if [ -n "${error}" ]; then
 | |
|     echo "ERROR: exiting due to earlier errors" 1>&2
 | |
|     exit 1
 | |
| fi
 | 
