68 lines
2.0 KiB
Nix
68 lines
2.0 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
newScope,
|
|
dbus,
|
|
versionCheckHook,
|
|
nushell,
|
|
runCommand,
|
|
}:
|
|
|
|
lib.makeScope newScope (
|
|
self:
|
|
|
|
lib.mapAttrs
|
|
(
|
|
_n: p:
|
|
let
|
|
# add two checks:
|
|
# - `versionCheckhook`, checks wether it's a binary that is able to
|
|
# display its own version
|
|
# - A check which loads the plugin into the current version of nushell,
|
|
# to detect incompatibilities (plugins are compiled for very specific
|
|
# versions of nushell). If this fails, either update the plugin or mark
|
|
# as broken.
|
|
withChecks = p.overrideAttrs (
|
|
final: _prev: {
|
|
doInstallCheck = true;
|
|
nativeInstallCheckInputs = [ versionCheckHook ];
|
|
|
|
passthru.tests.loadCheck =
|
|
let
|
|
nu = lib.getExe nushell;
|
|
plugin = lib.getExe withChecks;
|
|
in
|
|
runCommand "test-load-${final.pname}" { } ''
|
|
touch $out
|
|
${nu} -n -c "plugin add --plugin-config $out ${plugin}"
|
|
${nu} -n -c "plugin use --plugin-config $out ${plugin}"
|
|
'';
|
|
}
|
|
);
|
|
in
|
|
withChecks
|
|
)
|
|
(
|
|
with self;
|
|
{
|
|
gstat = callPackage ./gstat.nix { };
|
|
formats = callPackage ./formats.nix { };
|
|
polars = callPackage ./polars.nix { };
|
|
query = callPackage ./query.nix { };
|
|
net = callPackage ./net.nix { };
|
|
units = callPackage ./units.nix { };
|
|
highlight = callPackage ./highlight.nix { };
|
|
dbus = callPackage ./dbus.nix {
|
|
inherit dbus;
|
|
};
|
|
skim = callPackage ./skim.nix { };
|
|
semver = callPackage ./semver.nix { };
|
|
hcl = callPackage ./hcl.nix { };
|
|
desktop_notifications = callPackage ./desktop_notifications.nix { };
|
|
}
|
|
// lib.optionalAttrs config.allowAliases {
|
|
regex = throw "`nu_plugin_regex` is no longer compatible with the current Nushell release.";
|
|
}
|
|
)
|
|
)
|