diff options
author | Robert Helgesson <robert@rycee.net> | 2015-08-01 15:16:17 +0200 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2015-08-10 23:12:03 +0200 |
commit | 24a5d478837f6e845ca9128f23cc672b78a3eaf3 (patch) | |
tree | 7e8562c3ac4c98b9cde0ec98364c06f7acbdf06d /pkgs/applications | |
parent | 7d60bb48eba26a768cf0985e2da0b8c4b6ec3e0c (diff) | |
download | nixlib-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar nixlib-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.gz nixlib-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.bz2 nixlib-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.lz nixlib-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.xz nixlib-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.zst nixlib-24a5d478837f6e845ca9128f23cc672b78a3eaf3.zip |
eclipse.plugins: unpack plugins when required
Some plugin bundles must be unpacked when used in Eclipse. With this change the plugin manifest is checked for the setting indicating that unpacking should happen.
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/editors/eclipse/plugins.nix | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix index c79b85b74bdb..f0de68a1a2b7 100644 --- a/pkgs/applications/editors/eclipse/plugins.nix +++ b/pkgs/applications/editors/eclipse/plugins.nix @@ -49,16 +49,35 @@ rec { installPhase = '' dropinDir="$out/eclipse/dropins/${name}" + # Install features. cd features for feature in *.jar; do - feat=''${feature%.jar} - mkdir -p $dropinDir/features/$feat - unzip $feature -d $dropinDir/features/$feat + featureName=''${feature%.jar} + mkdir -p $dropinDir/features/$featureName + unzip $feature -d $dropinDir/features/$featureName done cd .. + # Install plugins. mkdir -p $dropinDir/plugins - cp -v "plugins/"*.jar $dropinDir/plugins/ + + # A bundle should be unpacked if the manifest matches this + # pattern. + unpackPat="Eclipse-BundleShape:\\s*dir" + + cd plugins + for plugin in *.jar ; do + pluginName=''${plugin%.jar} + manifest=$(unzip -p $plugin META-INF/MANIFEST.MF) + + if [[ $manifest =~ $unpackPat ]] ; then + mkdir $dropinDir/plugins/$pluginName + unzip $plugin -d $dropinDir/plugins/$pluginName + else + cp -v $plugin $dropinDir/plugins/ + fi + done + cd .. ''; }); |