diff --git a/pkgs/shells/nushell/plugins/dbus.nix b/pkgs/shells/nushell/plugins/dbus.nix new file mode 100644 index 000000000000..374f008548e7 --- /dev/null +++ b/pkgs/shells/nushell/plugins/dbus.nix @@ -0,0 +1,52 @@ +{ + stdenv, + runCommand, + lib, + rustPlatform, + pkg-config, + nix-update-script, + fetchFromGitHub, + dbus, + nushell, + nushell_plugin_dbus, +}: + +rustPlatform.buildRustPackage rec { + pname = "nu_plugin_dbus"; + version = "0.12.0"; + + src = fetchFromGitHub { + owner = "devyn"; + repo = pname; + rev = version; + hash = "sha256-I6FB2Hu/uyA6lBGRlC6Vwxad7jrl2OtlngpmiyhblKs="; + }; + + cargoHash = "sha256-WwdeDiFVyk8ixxKS1v3P274E1wp+v70qCk+rNEpoce4="; + + nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; + buildInputs = [ dbus ]; + + passthru = { + updateScript = nix-update-script { }; + tests.check = + let + nu = lib.getExe nushell; + plugin = lib.getExe nushell_plugin_dbus; + in + runCommand "${pname}-test" { } '' + touch $out + ${nu} -n -c "plugin add --plugin-config $out ${plugin}" + ${nu} -n -c "plugin use --plugin-config $out dbus" + ''; + }; + + meta = with lib; { + description = "Nushell plugin for communicating with D-Bus"; + mainProgram = "nu_plugin_dbus"; + homepage = "https://github.com/devyn/nu_plugin_dbus"; + license = licenses.mit; + maintainers = with maintainers; [ aftix ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/shells/nushell/plugins/default.nix b/pkgs/shells/nushell/plugins/default.nix index 5cfa7c3ed3ff..7aa271e82e3b 100644 --- a/pkgs/shells/nushell/plugins/default.nix +++ b/pkgs/shells/nushell/plugins/default.nix @@ -1,4 +1,4 @@ -{ lib, newScope, IOKit, CoreFoundation, Foundation, Security }: +{ lib, newScope, dbus, IOKit, CoreFoundation, Foundation, Security }: lib.makeScope newScope (self: with self; { gstat = callPackage ./gstat.nix { inherit Security; }; @@ -9,4 +9,5 @@ lib.makeScope newScope (self: with self; { net = callPackage ./net.nix { inherit IOKit CoreFoundation; }; units = callPackage ./units.nix { }; highlight = callPackage ./highlight.nix { }; + dbus = callPackage ./dbus.nix { inherit dbus; nushell_plugin_dbus = self.dbus; }; })