| #!/bin/sh |
| |
| # count the child directories and create a 'child' node for each one |
| children="" |
| numOfChildren=0 |
| for directory in */ ; do |
| children="$children<child location='$directory'/> " |
| ((numOfChildren++)) |
| done |
| |
| # define the repository name and the timestamp |
| repository='Virgo' |
| timestamp=$(date +%s) |
| |
| # create compositeArtifacts.xml |
| cat > compositeArtifacts.xml <<EOF |
| <?xml version='1.0' encoding='UTF-8'?> |
| <?compositeArtifactRepository version='1.0.0'?> |
| <repository name='$repository' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'> |
| <properties size='3'> |
| <property name='p2.timestamp' value='$timestamp'/> |
| <property name='p2.compressed' value='true'/> |
| <property name='p2.atomic.composite.loading' value='true'/> |
| </properties> |
| <children size='$numOfChildren'> |
| $children |
| </children> |
| </repository> |
| EOF |
| |
| # create compositeContent.xml |
| cat > compositeContent.xml <<EOF |
| <?xml version='1.0' encoding='UTF-8'?> |
| <?compositeMetadataRepository version='1.0.0'?> |
| <repository name='$repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'> |
| <properties size='3'> |
| <property name='p2.timestamp' value='$timestamp'/> |
| <property name='p2.compressed' value='true'/> |
| <property name='p2.atomic.composite.loading' value='true'/> |
| </properties> |
| <children size='$numOfChildren'> |
| $children |
| </children> |
| </repository> |
| EOF |
| |
| # create p2.index file |
| cat > p2.index <<"EOF" |
| version=1 |
| metadata.repository.factory.order=compositeContent.xml,\! |
| artifact.repository.factory.order=compositeArtifacts.xml,\! |
| EOF |
| |
| # package the xml files into jars and delete them |
| jar cvMf compositeArtifacts.jar compositeArtifacts.xml > /dev/null |
| jar cvMf compositeContent.jar compositeContent.xml > /dev/null |
| rm compositeArtifacts.xml |
| rm compositeContent.xml |