blob: 250ace5735492d3c7db8ab1f6e919a6d47bea8e0 [file] [log] [blame]
#!/bin/bash
f=$1
if [[ $f == "" ]]; then
echo "No input file specified!"
exit 1
fi
if [[ ! -f $f ]]; then
echo "Input file $f not found!"
exit 2
fi
shift
script=$1
if [[ $script == "" ]]; then
echo "No script specified!"
exit 3
fi
if [[ ! -f $script ]]; then
echo "Script $script not found!"
exit 4
fi
script=`readlink -f $script`
shift
args=$*
set -o nounset
set -o errexit
###########################################################################
file=`readlink -f $f`
echo "Post-processing $file"
tmp=$file-tmp
echo "Product dir: $tmp"
rm -rf $tmp
mkdir $tmp
cd $tmp
if [[ $file == *.tar.gz ]]; then
tar -xzf $file
bash $script $file $args
if [[ $file == *mac64* ]]; then
echo " Signing Eclipse Installer.app"
rm -rf "Eclipse Installer.app/Contents/_CodeSignature"
chmod -R a-st "Eclipse Installer.app"
zip -r -q unsigned.zip "Eclipse Installer.app"
rm -rf "Eclipse Installer.app"
curl -O https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/releng/org.eclipse.oomph.releng/hudson/installer.entitlements
curl -o signed.zip -F file=@unsigned.zip -F entitlements=@installer.entitlements http://172.30.206.146:8282/macosx-signing-service/1.0.1-SNAPSHOT
unzip -qq signed.zip
rm -f unsigned.zip signed.zip
chmod -R a-st "Eclipse Installer.app"
chmod a+x "Eclipse Installer.app/Contents/MacOS/eclipse-inst"
tar -czf $file-new "Eclipse Installer.app"
else
tar -czf $file-new *
fi
mv $file-new $file
elif [[ $file == *.exe ]]; then
concatdir=`mktemp -d`
echo "Concat dir: $concatdir"
extractorlib=/home/data/httpd/download.eclipse.org/oomph/products/latest/repository/plugins/org.eclipse.oomph.extractor.lib_*.jar
java -cp $extractorlib org.eclipse.oomph.extractor.lib.BINExtractor \
$file \
$concatdir/product.zip \
-export \
$concatdir/marker.txt \
$concatdir/extractor.exe \
$concatdir/libdata.jar \
$concatdir/descriptor.txt
unzip -qq $concatdir/product.zip
bash $script $file $args
zip -r -9 -qq --symlinks $file.zip *
# Don't use the already signed extractor.exe but rather the one directly from git.
# Otherwise signing will fail.
curl -O https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/plugins/org.eclipse.oomph.extractor/extractor-64.exe
cat extractor-64.exe \
$concatdir/marker.txt \
$concatdir/libdata.jar \
$concatdir/marker.txt \
$concatdir/descriptor.txt \
$concatdir/marker.txt \
$file.zip \
$concatdir/marker.txt > $file-unsigned
echo ""
curl -o $file-new -F filedata=@$file-unsigned http://build.eclipse.org:31338/winsign.php
actualSize=$(wc -c "$file-new" | cut -f 1 -d ' ')
if [ $actualSize -lt 40000000 ]; then
echo "$file-new is just $actualSize bytes large!"
echo ""
cat $file-new
echo ""
exit 5
fi
mv $file-new $file
rm -rf $concatdir
rm -rf $file.zip
rm -rf $file-unsigned
elif [[ $file == *.zip ]]; then
unzip -qq $file
bash $script $file $args
zip -r -9 -qq --symlinks $file-new *
mv $file-new $file
fi
rm -rf $tmp
cd ..
echo ""