1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-27 02:45:32 +02:00
cdt/releng/org.eclipse.rse.updatesite/bin/sign.sh
2007-07-02 15:15:33 +00:00

119 lines
3 KiB
Bash
Executable file

#!/bin/sh
#*******************************************************************************
# Copyright (c) 2007 Wind River Systems, Inc.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# Martin Oberhuber - initial API and implementation
#*******************************************************************************
# Sign a list of files on build.eclipse.org
#
# Usage:
# sign.sh a.jar featurs/b.jar `ls plugins/*.jar`
#
# Prerequisites:
# - Eclipse 3.3Mx installed in $HOME/ws2/eclipse
# - Java5 in the PATH or in /shared/dsdp/tm/ibm-java2-ppc64-50
curdir=`pwd`
cd `dirname $0`
mydir=`pwd`
umask 022
#Use Java5 on build.eclipse.org - need JRE for pack200
export PATH=/shared/dsdp/tm/ibm-java2-ppc64-50/jre/bin:/shared/dsdp/tm/ibm-java2-ppc64-50/bin:$PATH
basebuilder=${HOME}/ws2/org.eclipse.releng.basebuilder
FILES=$*
# Work on update site
cd ..
SITE=`pwd`
STAGING=/home/data/httpd/download-staging.priv/dsdp/tm
stamp=`date +'%Y%m%d-%H%M'`
WORKDIR=${STAGING}/${stamp}
mkdir -p ${WORKDIR}
REALFILES=""
NAMES=""
echo "Bock ma's"
for file in ${FILES}; do
echo "file: ${file}"
cd ${SITE}
if [ -f ${file} ]; then
name=`basename ${file}`
echo "signing: ${name}"
NAMES="${NAMES} ${name}"
REALFILES="${REALFILES} ${file}"
cp ${file} ${WORKDIR}
cd ${WORKDIR}
sign ${name} nomail >/dev/null
fi
done
mkdir ${WORKDIR}/done
cd ${WORKDIR}
TRIES=10
while [ $TRIES -gt 0 ]; do
sleep 30
anyleft=0
echo "TRIES to go: ${TRIES}"
for x in ${NAMES} ; do
if [ -f ${x} ]; then
anyleft=1
result=`jarsigner -verify ${x}`
if [ "$result" = "jar verified." ]; then
echo "${result}: ${x}"
mv ${x} ${WORKDIR}/done/${x}
else
echo "-pending- ${x} : ${result}" | head -1
sleep 30
fi
fi
done
if [ "${anyleft}" = "0" ]; then
TRIES=0
ok=1
else
echo "--> left:"
ls
TRIES=`expr $TRIES - 1`
ok=0
fi
done
if [ "$ok" = "1" ]; then
cd ${SITE}
echo "Signed, ok, packing: ${REALFILES}"
for x in ${REALFILES} ; do
name=`basename ${x}`
#cp -f ${WORKDIR}/done/${name} ${x}
echo "signed, packing: ${x}"
java -jar ${basebuilder}/plugins/org.eclipse.equinox.launcher.jar \
-application org.eclipse.update.core.siteOptimizer \
-jarProcessor -outputDir `dirname ${x}` \
-pack ${WORKDIR}/done/${name}
done
rm -rf ${WORKDIR}
else
echo "Something went wrong during staging and signing."
echo "Keeping existing update site intact."
rm -rf ${WORKDIR}
exit 1
fi
#Create the digest
echo "Creating digest..."
#java -jar $HOME/ws2/eclipse/startup.jar \
java -jar ${basebuilder}/plugins/org.eclipse.equinox.launcher.jar \
-application org.eclipse.update.core.siteOptimizer \
-digestBuilder -digestOutputDir=$SITE \
-siteXML=$SITE/site.xml
cd $SITE
chgrp -R dsdp-tmadmin .
chmod -R g+w .
chmod -R a+r .
cd $curdir