Skip to content

Instantly share code, notes, and snippets.

@rtreffer
Created March 25, 2011 23:29
Show Gist options
  • Save rtreffer/887850 to your computer and use it in GitHub Desktop.
Save rtreffer/887850 to your computer and use it in GitHub Desktop.
Creating a custom eclipse
$ cat build-php.sh
#!/bin/bash
rm -rf workspace eclipse
mkdir workspace
tar -xzf eclipse-platform-3.6.2-linux-gtk-x86_64.tar.gz
cat eclipse/eclipse.ini |tr '\n' '\\'|sed 's:-vmargs.*::'|tr '\\' '\n' > eclipse.ini
cat >> eclipse.ini << HERE
-vmargs
-server
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+CMSIncrementalMode
-XX:+CMSParallelRemarkEnabled
-Xss1M
-Xms512M
-Xmx768M
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-XX:PermSize=256m
-XX:ReservedCodeCacheSize=128m
-XX:MaxPermSize=768m
-XX:+CMSIncrementalPacing
HERE
cp eclipse.ini eclipse/eclipse.ini
rm eclipse.ini
(
cd eclipse
repository='http://download.eclipse.org/releases/helios,http://download.eclipse.org/eclipse/updates/3.6' #eclipse 3.6
repository="$repository,http://community.polarion.com/projects/subversive/download/eclipse/2.0/indigo-site/,http://subclipse.tigris.org/update_1.6.x" #subversion
repository="$repository,http://update.atlassian.com/atlassian-eclipse-plugin/e3.4" #atlassian/jira
repository="$repository,http://download.eclipse.org/tools/mylyn/update/extras,http://mylyn-mantis.sourceforge.net/eclipse/update,http://download.eclipse.org/tools/mylyn/update/helios" #mylyn (bugzilla/mantis/trac/...)
repository="$repository,http://downloads.zend.com/pdt/" #zend pdt
repository="$repository,http://www.phpsrc.org/eclipse/pti/" #php q/a tools
repository="$repository,http://jsdt.googlecode.com/svn/trunk/org.ayound.js.debug.update/" #javascript debugger
repository="$repository,http://update.rockstarapps.com/site.xml" #jslint
repository="$repository,http://www.ne.jp/asahi/zigen/home/plugin/dbviewer/" #dbviewer
repository="$repository,http://code.inf.unibz.it/instasearch/downloads/" #instasearch
repository="$repository,http://beta.zend.com/studio/8.0.1/update/,http://downloads.zend.com/studio-eclipse/updates/8_0" #valid ZendStudio licence required. Zend Certified == valid ZS licence
repository="$repository,http://download.aptana.com/studio3/plugin/install" # aptana
repository="$repository,http://download.cloudsmith.com/geppetto/updates" #puppet ide
repository="$repository,http://opensource.mayflower.de/cinder/" # jenkins errors -> eclipse errors
repository="$repository,http://www.cubictest.org/update/" #cubictest, selenium support
repository="$repository,http://zen-coding.ru/eclipse/updates/" #zen coding html/xml/xsl editor
repository="$repository,http://editbox.sourceforge.net/updates" #editbox, a background highlighter
repository="$repository,http://dpp.sourceforge.net/update" #saros distributed pair programming
repository="$repository,http://workspacemechanic.eclipselabs.org.codespot.com/hg.update/mechanic/" #workspace mechanic
features="org.eclipse.epp.package.php.feature.feature.group" # eclipse definition of a php ide
features="$features,org.eclipse.egit.feature.group,org.eclipse.jgit.feature.group" #git
features="$features,org.eclipse.team.svn.revision.graph.feature.group,org.polarion.eclipse.team.svn.connector.feature.group,org.eclipse.team.svn.resource.ignore.rules.jdt.feature.group,org.polarion.eclipse.team.svn.connector.svnkit16.feature.group" #svn
# features="$features,org.eclipse.wst.web_ui.feature.feature.group,org.eclipse.wst.xml_ui.feature.feature.group,org.eclipse.wst.xsl.feature.feature.group" #web/xml/xsl
# features="$features,org.eclipse.epp.package.javascript.feature.feature.group,org.eclipse.wst.jsdt.feature.feature.group" #javascript
# features="$features,org.ayound.js.debug.feature.feature.group" #javascript debugger
features="$features,org.eclipse.php.sdk.feature.group" #php
features="$features,org.phpsrc.eclipse.pti.tools.phpcpd,org.phpsrc.eclipse.pti.tools.codesniffer,org.phpsrc.eclipse.pti.core,org.phpsrc.eclipse.pti.tools.phpunit,org.phpsrc.eclipse.pti.tools.phpdepend,org.phpsrc.eclipse.pti.library.pear" #php q/a tools
features="$features,org.zend.php.debug_feature.feature.group" #zend debugger (xdebug ships with pdt)
features="$features,org.eclipse.datatools.connectivity.feature.feature.group,org.eclipse.datatools.modelbase.feature.feature.group,org.eclipse.datatools.sqldevtools.feature.feature.group,org.eclipse.datatools.sqldevtools.data.feature.feature.group" #sql
features="$features,org.eclipse.datatools.enablement.sdk.feature.feature.group,org.eclipse.datatools.sdk.feature.feature.group" #database definitions
# features="$features,org.eclipse.datatools.enablement.mysql.feature.patch.feature.group,org.eclipse.datatools.enablement.sqlite.feature.patch.feature.group" # zend db drivers
features="$features,zigen.plugin.future.ext.generate.vo.feature.group" #dbviewer
features="$features,com.atlassian.connector.eclipse.jira.feature.group,com.itsolut.mantis_feature.feature.group,org.eclipse.mylyn.trac_feature.feature.group,org.eclipse.mylyn.bugzilla_feature.feature.group" #jira/mantis/trac/bugzilla
features="$features,org.eclipse.mylyn.ide_feature.feature.group,org.eclipse.team.svn.mylyn.feature.group"
# org.eclipse.mylyn.git.feature.group,org.eclipse.mylyn.ide_feature.feature.group,org.eclipse.team.svn.mylyn.feature.group" #mylyn/git/eclipse/svn
# features="$features,org.eclipse.dltk.mylyn.feature.group" #mylyn/php/js
features="$features,org.eclipse.jdt.feature.group" # java development tools, enable the ant view
features="$features,org.eclipse.rse.core.feature.group,org.eclipse.rse.ftp.feature.group,org.eclipse.rse.ssh.feature.group" #remote development
features="$features,org.eclipse.tm.terminal.local.feature.group" #local terminal
features="$features,com.vmware.remotedebug.feature.group" #valid ZendStudio licence required
features="$features,org.cloudsmith.geppetto.feature.group" #puppet ide
# features="$features,org.eclipse.mylyn.hudson.feature.group" #jenkins
features="$features,it.unibz.instasearch.feature.feature.group" #instasearch
features="$features,com.aptana.ide.feature.libraries.subscription.feature.group,com.aptana.feature.feature.group" #core aptana
features="$features,org.art_core.dev.cinder.feature.group" #cinder
features="$features,com.google.eclipse.mechanic.feature.group" #workspace mechanic
features="$features,pm.eclipse.editbox.feature.feature.group" #editbox background highlighter
features="$features,de.fu_berlin.inf.dpp.feature.feature.group" #saros distributed pair programming
features="$features,org.cubictest.feature.group" #selenium support via cubictest
features="$features,org.eclipse.epp.mpc.feature.group" #eclipse marketplace
./eclipse -nosplash -data ../workspace -application org.eclipse.equinox.p2.director \
-p2.os linux -p2.ws gtk -p2.arch x86_64 \
-purgeHistory -roaming -profileProperties org.eclipse.update.install.features=true \
-destination "$(pwd)" -bundlepool "$(pwd)/dropins/php/" -repository "$repository" -profile "php.profile" -installIU "$features"
)
find eclipse -type f -name '*.jar' -exec ./recompress.sh '{}' ';'
#!/bin/bash
zip -F "${1}" --out "${1}.tmp" &> /dev/null || rm "${1}.tmp"
if [ -f "${1}.tmp" ] ; then
cp "${1}.tmp" "${1}"
rm "${1}.tmp"
advzip -z4 "${1}"
fi
@alab1001101
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment