File rebuild-sdk-features of Package eclipse

#!/bin/sh
#
# Rebuild the features that are part of the SDK
#
# This script should be run in the %post section of the RPM installation for the
# following packages:  eclipse-platform{,-devel}, eclipse-jdt{,-devel}, eclipse-pde{,-devel} 

sdkVersion=@SDK_VERSION@

pushd /usr/share/eclipse

cp configuration/org.eclipse.update/platform.xml \
  configuration/org.eclipse.update/platform.xml.bak

cp features/org.eclipse.sdk_${sdkVersion}/feature.xml \
  features/org.eclipse.sdk_${sdkVersion}/feature.xml.bak

# platform.xml header, etc.
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > configuration/org.eclipse.update/platform.xml
echo "<config date=\"1139581358577\" transient=\"false\" version=\"3.0\">" >> configuration/org.eclipse.update/platform.xml
echo "<site enabled=\"true\" policy=\"USER-EXCLUDE\" updateable=\"true\" url=\"platform:/base/\">" >> configuration/org.eclipse.update/platform.xml
featureId="org.eclipse.sdk"
version=${sdkVersion}
echo "<feature id=\""${featureId}"\" version=\""${version}"\" url=\"features/"${featureId}"_"${version}"/\">" >> configuration/org.eclipse.update/platform.xml
echo "</feature>" >> configuration/org.eclipse.update/platform.xml

# sdk feature.xml header, etc.
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "<feature" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      id=\"org.eclipse.sdk\"" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      label=\"%featureName\"" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      version=\"${sdkVersion}\"" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      image= \"eclipse_update_120.jpg\"" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      provider-name=\"%providerName\">" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "   <description>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      %description" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "   </description>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "   " >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "   <license url=\"%licenseURL\">" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "     %license" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "   </license>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "   <url>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      <update label=\"%updateSiteName\" url=\"http://update.eclipse.org/updates/3.1\"/>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "      <discovery label=\"%updateSiteName\" url=\"http://update.eclipse.org/updates/3.1\"/>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "   </url>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo >> features/org.eclipse.sdk_${sdkVersion}/feature.xml

# Possible SDK features are:
#  org.eclipse.platform_${version}
#  org.eclipse.platform.source_${version}
#  org.eclipse.jdt_${version}
#  org.eclipse.jdt.source_${version}
#  org.eclipse.pde_${version}
#  org.eclipse.pde.source_${version}
#  org.eclipse.sdk_${version}
#  org.eclipse.rcp_${version}
#  org.eclipse.rcp.source_${version}

features=$(ls features)
for feature in $features
do
  featureId=""
  version=${feature: -5}
  case $feature in
  org.eclipse.rcp_*)
    featureId="org.eclipse.rcp"
    ;;
  org.eclipse.rcp.source_*)
    featureId="org.eclipse.rcp.source"
    ;;
  org.eclipse.platform_*)
    featureId="org.eclipse.platform"
    ;;
  org.eclipse.platform.source_*)
    featureId="org.eclipse.platform.source"
    ;;
  org.eclipse.jdt_*)
    featureId="org.eclipse.jdt"
    ;;
  org.eclipse.jdt.source_*)
    featureId="org.eclipse.jdt.source"
    ;;
  org.eclipse.pde_*)
    featureId="org.eclipse.pde"
    ;;
  org.eclipse.pde.source_*)
    featureId="org.eclipse.pde.source"
    ;;
  esac
  if [ "xx${featureId}xx" != "xxxx" ]
  then
      if [ "xx${version}xx" != "xxxx" ]
      then
          echo "<feature id=\""${featureId}"\" version=\""${version}"\" url=\"features/"${featureId}"_"${version}"/\">"  >> configuration/org.eclipse.update/platform.xml
          echo "</feature>" >> configuration/org.eclipse.update/platform.xml
          if [ "xx${featureId}" != "xxorg.eclipse.rcp" ]
          then
              if [ "xx${featureId}" != "xxorg.eclipse.rcp.source" ]
              then
                  echo "  <includes id=\""${featureId}"\" version=\""${version}"\" />" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
              fi
          fi
      fi
  fi
done

# platform.xml footer
echo "</site>" >> configuration/org.eclipse.update/platform.xml
echo "</config>" >> configuration/org.eclipse.update/platform.xml

# sdk feature.xml footer
echo "  <plugin id=\"org.eclipse.sdk\" version=\"${sdkVersion}\"/>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "  " >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
echo "</feature>" >> features/org.eclipse.sdk_${sdkVersion}/feature.xml
popd
openSUSE Build Service is sponsored by