| #!/bin/bash -e |
| |
| update() { |
| source composite.index |
| |
| #if [ "$DIRS" == "" ]; then |
| # echo "missing DIRS in $PWD/composite.index" |
| # exit 1 |
| #fi |
| |
| if [ "$NAME" == "" ]; then |
| echo "missing NAME in $PWD/composite.index" |
| exit 1 |
| fi |
| |
| FILE=compositeArtifacts.xml |
| TAG=compositeArtifactRepository |
| TYPE=org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository |
| |
| compose |
| |
| FILE=compositeContent.xml |
| TAG=compositeMetadataRepository |
| TYPE=org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository |
| |
| compose |
| |
| cat > p2.index <<EOF |
| version=1 |
| metadata.repository.factory.order=compositeContent.xml,! |
| artifact.repository.factory.order=compositeArtifacts.xml,! |
| EOF |
| } |
| |
| compose() { |
| echo "Updating $PWD/$FILE" |
| |
| cat > $FILE <<EOF |
| <?xml version='1.0' encoding='UTF-8'?> |
| <?TAG version='1.0.0'?> |
| <repository name='NAME' type='TYPE' version='1.0.0'> |
| <properties size='2'> |
| <property name='p2.compressed' value='true'/> |
| <property name='p2.timestamp' value='TIMESTAMP'/> |
| </properties> |
| <children size='CHILD_COUNT'> |
| EOF |
| |
| sed -i -e "s/TAG/$TAG/" -e "s/TYPE/$TYPE/" $FILE |
| sed -i -e "s/NAME/$NAME/" -e "s/TIMESTAMP/$TIMESTAMP/" $FILE |
| COUNT=0 |
| for i in $DIRS; do |
| echo " <child location='$i'/>" >> $FILE |
| COUNT=$((COUNT+1)) |
| |
| echo " added $i" |
| done |
| sed -i -e "s/CHILD_COUNT/$COUNT/" $FILE |
| |
| cat >> $FILE <<EOF |
| </children> |
| </repository> |
| EOF |
| } |
| |
| |
| TIMESTAMP=$(date +%s)000 |
| |
| if [ "$1" == "-r" ]; then |
| for i in $(find -name composite.index); do |
| (cd $(dirname $i); update) |
| setfacl -m u:55011:rwx $(dirname $i)/*.xml || true |
| done |
| elif [ -e composite.index ]; then |
| update |
| else |
| echo "composite.index not found" |
| exit 1 |
| fi |
| |