nur-packages/pkgs/applications/editors/jetbrains/wrapper.nix

32 lines
809 B
Nix
Raw Normal View History

2020-10-15 19:05:13 +11:00
{ lib
}: self:
with lib;
package:
pluginsFun:
let
plugins =
if isFunction pluginsFun
then pluginsFun self
else pluginsFun;
# FIXME: Is this still needed?
2020-10-15 19:05:13 +11:00
info = builtins.parseDrvName package.name;
badPlugins = filter (p: ! elem info.name p.jetbrainsPlatforms) plugins;
errorMsg = "plugins [ ${toString (map (p: p.name) badPlugins)} ] are not available for platform ${info.name}";
in
assert assertMsg (length badPlugins == 0) errorMsg;
appendToName "with-plugins" (package.overrideAttrs (oldAttrs: {
passthru = { inherit plugins; };
# TODO: Purely aesthetics, but link the plugin to its name instead of hash-name-version
2020-10-15 19:05:13 +11:00
installPhase = oldAttrs.installPhase + ''
for plugin in $plugins; do
ln -s "$plugin" "$out/$name/plugins/$(basename $plugin)"
2020-10-15 19:05:13 +11:00
done
'';
}))