66 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| # ---- Compute variables ----
 | |
| PHP_VER="${PHP_VER:?set PHP_VER like 7.4|8.0|8.1|8.2|8.3|8.4}"
 | |
| PKG="php${PHP_VER}-sqlcipher"
 | |
| PHP_BIN="php${PHP_VER}"
 | |
| DOC_DIR="/usr/share/doc/${PKG}"
 | |
| 
 | |
| # Distro codename
 | |
| if command -v lsb_release >/dev/null 2>&1; then
 | |
|   DIST_CODENAME="${DIST_CODENAME:-$(lsb_release -sc)}"
 | |
| else
 | |
|   . /etc/os-release 2>/dev/null || true
 | |
|   DIST_CODENAME="${DIST_CODENAME:-${VERSION_CODENAME:-unknown}}"
 | |
| fi
 | |
| 
 | |
| MAINT_NAME="${MAINT_NAME:-Miguel Jacq}"
 | |
| MAINT_EMAIL="${MAINT_EMAIL:-mig@mig5.net}"
 | |
| DATE_RFC2822="$(date -R)"
 | |
| 
 | |
| # Derive package version if not provided
 | |
| if [[ -z "${PKG_VERSION:-}" ]]; then
 | |
|   if command -v "${PHP_BIN}" >/dev/null 2>&1; then
 | |
|     PHP_FULL="$("${PHP_BIN}" -r 'echo PHP_MAJOR_VERSION,".",PHP_MINOR_VERSION,".",PHP_RELEASE_VERSION;')"
 | |
|   else
 | |
|     PHP_FULL="$(dpkg-query -W -f='${Version}\n' "${PHP_BIN}-dev" 2>/dev/null | sed 's/-.*//;q' || echo "${PHP_VER}.0")"
 | |
|   fi
 | |
|   PKG_VERSION="${PHP_FULL}-1+${DIST_CODENAME}"
 | |
| fi
 | |
| 
 | |
| # Export everything envsubst must see
 | |
| export PHP_VER PKG PHP_BIN DOC_DIR DIST_CODENAME PKG_VERSION MAINT_NAME MAINT_EMAIL DATE_RFC2822
 | |
| 
 | |
| # Only substitute the vars we care about
 | |
| VARS='${PHP_VER} ${PKG} ${PHP_BIN} ${DOC_DIR} ${DIST_CODENAME} ${PKG_VERSION} ${MAINT_NAME} ${MAINT_EMAIL} ${DATE_RFC2822}'
 | |
| 
 | |
| render() {
 | |
|   local src="$1" dst="$2"
 | |
|   [[ -f "$src" ]] || return 0
 | |
|   # Support both ${VAR} and @VAR@ templates
 | |
|   local tmp; tmp="$(mktemp)"
 | |
|   sed -E 's/@([A-Z0-9_]+)@/\${\1}/g' "$src" > "$tmp"
 | |
|   envsubst "$VARS" < "$tmp" > "$dst"
 | |
|   rm -f "$tmp"
 | |
| }
 | |
| 
 | |
| # Render files
 | |
| render debian/changelog.in        debian/changelog
 | |
| render debian/control.in          debian/control
 | |
| render debian/copyright.in        debian/copyright
 | |
| render debian/pkg.examples.in     "debian/${PKG}.examples"
 | |
| render debian/pkg.php.in          "debian/${PKG}.php"
 | |
| mkdir -p debian/tests
 | |
| render debian/tests/control.in    debian/tests/control
 | |
| render debian/tests/basic.in      debian/tests/basic
 | |
| 
 | |
| # ---- Self-check: make sure changelog header is valid and no ${...} placeholders remain ----
 | |
| if [[ -f debian/changelog ]]; then
 | |
|   head -n1 debian/changelog | grep -Eq '^[a-z0-9.+-]+ \([0-9][^)]*\) [^;]+; urgency=' \
 | |
|     || { echo "ERROR: debian/changelog header invalid:"; sed -n '1,3p' debian/changelog; exit 1; }
 | |
|   ! grep -q '\${[A-Z0-9_]\+}' debian/changelog \
 | |
|     || { echo "ERROR: Unsubstituted variables remain in debian/changelog"; sed -n '1,8p' debian/changelog; exit 1; }
 | |
| fi
 | |
| 
 |