#!/bin/bash . scripts/common [[ $# != 3 ]] && die "Usage: $0 " phpVersion="$1" phpSourcePackage="$2" [[ -s $phpSourcePackage ]] || die "$phpSourcePackage not found as a file" unpackDir="$3" [[ -d $unpackDir ]] || die "$unpackDir not found as a directory" begin "Cleaning $unpackDir"; { rm -rf "$unpackDir" rm -rf "$unpackDir.tmp" mkdir "$unpackDir/" }; end phpVersionMajor=$(getVersionPart 0 $phpVersion) phpVersionMinor=$(getVersionPart 1 $phpVersion) phpVersionPatch=$(getVersionPart 2 $phpVersion) sourceFiles=(configure.in main/internal_functions.c.in) if [[ $phpVersionMajor -ge 5 ]]; then pushv sourceFile "win32/build" fi headerDirs=(main TSRM Zend win32 ext/standard) if [[ $phpVersionMajor -gt 5 ]] || [[ $phpVersionMajor -eq 5 && $phpVersionMinor -gt 0 ]]; then pushv headerDir ext/date fi if [[ $phpVersionMajor -lt 5 ]] || [[ $phpVersionMajor -eq 5 && $phpVersionMinor -lt 2 ]] || [[ $phpVersionMajor -eq 6 ]]; then pushv sourceFile README.CVS-RULES elif [[ $phpVersionMajor -eq 5 && $phpVersionMinor -eq 2 ]] \ || [[ $phpVersionMajor -eq 5 && $phpVersionMinor -eq 3 && $phpVersionPatch -lt 14 ]] \ || [[ $phpVersionMajor -eq 5 && $phpVersionMinor -eq 4 && $phpVersionPatch -lt 4 ]]; then pushv sourceFile README.SVN-RULES else pushv sourceFile README.GIT-RULES fi if [[ $phpVersionMajor -lt 5 ]] || [[ $phpVersionMajor -eq 5 && $phpVersionMinor -lt 3 ]]; then pushv headerDir regex fi for headerDir in "${headerDirs[@]}"; do pushv sourceFile "$headerDir/*.h" done case "$phpVersion" in *-dev-*) prefix="php${phpVersion/.0-dev-/-}" prefix="${prefix%-*}-*" ;; *) prefix="php-$phpVersion" ;; esac sourcePaths=() for sourceFile in "${sourceFiles[@]}"; do pushv sourcePath "$prefix/$sourceFile" done echo "Unpacking ${sourceFiles[@]} ..."; { rm -rf "$unpackDir.tmp" || die mkdir "$unpackDir.tmp" || die cd "$unpackDir.tmp" || die tar --wildcards -jxvf "$phpSourcePackage" "${sourcePaths[@]}" || die "failed unpacking" mv "$unpackDir.tmp/"$prefix/* "$unpackDir/" cd .. rm -rf "$unpackDir.tmp" } if [[ $phpVersionMajor -ge 5 ]] && [[ ! -d $develDir/win32build/build ]]; then mkdir -p "$develDir/win32build" cp -v -uaR "$unpackDir"/win32/build $develDir/win32build/build fi