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/editors/eclipse/plugins.nix | |
parent | 7d60bb48eba26a768cf0985e2da0b8c4b6ec3e0c (diff) | |
download | nixpkgs-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar nixpkgs-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.gz nixpkgs-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.bz2 nixpkgs-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.lz nixpkgs-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.xz nixpkgs-24a5d478837f6e845ca9128f23cc672b78a3eaf3.tar.zst nixpkgs-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/editors/eclipse/plugins.nix')
-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 c79b85b74bd..f0de68a1a2b 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 .. ''; }); |