mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 06:45:16 +01:00
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.
This commit is contained in:
parent
7d60bb48eb
commit
24a5d47883
1 changed files with 23 additions and 4 deletions
|
@ -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 ..
|
||||
'';
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue