diff options
Diffstat (limited to 'gatherBundles.sh')
-rwxr-xr-x | gatherBundles.sh | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/gatherBundles.sh b/gatherBundles.sh new file mode 100755 index 0000000..a811c99 --- /dev/null +++ b/gatherBundles.sh @@ -0,0 +1,105 @@ +#! /bin/sh + +prefix=$ROOT_PREFIX +sdk=$1'-sdk' +launcher=$1'-launcher' +repo=$1 + +eclipse=$prefix$(rpm --eval '%{_libdir}')/eclipse + +datadir=$prefix/usr/share/eclipse +javadir=$prefix/usr/share/java +jnidir=$prefix/usr/lib/java +tycho_bundles_external=/usr/share/java/tycho/tycho-bundles-external.zip + +mkdir -p $sdk/plugins $sdk/features +pushd $sdk + + (cd $eclipse; + ls -d plugins/* features/* 2>/dev/null) | + while read f; do + [ ! -e $f ] && ln -s $eclipse/$f $f + done + (cd $eclipse/dropins; ls -d * 2>/dev/null) | + while read f; do + if [ -e $eclipse/dropins/$f/eclipse ]; then + (cd $eclipse/dropins/$f/eclipse; + ls -d plugins/* features/* 2>/dev/null) | + while read g; do + [ ! -e $g ] && \ + ln -s $eclipse/dropins/$f/eclipse/$g $g + done + else + (cd $eclipse/dropins/$f; + ls -d plugins/* features/* 2>/dev/null) | + while read g; do + [ ! -e $g ] && \ + ln -s $eclipse/dropins/$f/$g $g + done + fi + done + (cd $datadir/dropins; ls -d * 2>/dev/null) | + while read f; do + if [ -e $datadir/dropins/$f/eclipse ]; then + (cd $datadir/dropins/$f/eclipse; + ls -d plugins/* features/* 2>/dev/null) | + while read g; do + [ ! -e $g ] && \ + ln -s $datadir/dropins/$f/eclipse/$g $g + done + else + (cd $datadir/dropins/$f; + ls -d plugins/* features/* 2>/dev/null) | + while read g; do + [ ! -e $g ] && \ + ln -s $datadir/dropins/$f/$g $g + done + fi + done + +for p in $(ls -d $eclipse/dropins/jdt/plugins/*); do + plugin=$(basename $p) + [ ! -e plugins/$plugin ] && ln -s $eclipse/dropins/jdt/plugins/$plugin plugins/$plugin +done +for f in $(ls -d $eclipse/dropins/jdt/features/*); do + feature=$(basename $f) + [ ! -e features/$feature ] && ln -s $eclipse/dropins/jdt/features/$feature features/$feature +done +for p in $(ls -d $eclipse/dropins/sdk/plugins/*); do + plugin=$(basename $p) + [ ! -e plugins/$plugin ] && ln -s $eclipse/dropins/sdk/plugins/$plugin plugins/$plugin +done +for f in $(ls -d $eclipse/dropins/sdk/features/*); do + feature=$(basename $f) + [ ! -e features/$feature ] && ln -s $eclipse/dropins/sdk/features/$feature features/$feature +done +for p in $(ls -d $eclipse/plugins/*); do + plugin=$(basename $p) + [ ! -e plugins/$plugin ] && ln -s $eclipse/plugins/$plugin plugins/$plugin +done +for f in $(ls -d $eclipse/features/*); do + feature=$(basename $f) + [ ! -e features/$feature ] && ln -s $eclipse/features/$feature features/$feature +done + +# jars in %%{_javadir} may not be uniquely named +id=1 +for p in $(find $javadir -name "*.jar"); do + unzip -p $p 'META-INF/MANIFEST.MF' | grep -q 'Bundle-SymbolicName' + if [ $? = 0 ]; then + plugin=${id}-$(basename $p) + [ ! -e plugins/$plugin ] && ln -s $p plugins/$plugin + id=$((${id} + 1)) + fi +done +id=1 +for p in $(find $jnidir -name "*.jar"); do + unzip -p $p 'META-INF/MANIFEST.MF' | grep -q 'Bundle-SymbolicName' + if [ $? = 0 ]; then + plugin=${id}-$(basename $p) + [ ! -e plugins/$plugin ] && ln -s $p plugins/$plugin + id=$((${id} + 1)) + fi +done + +popd |