diff options
Diffstat (limited to 'pkgs/by-name/sh/shpool/package.nix')
-rw-r--r-- | pkgs/by-name/sh/shpool/package.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/by-name/sh/shpool/package.nix b/pkgs/by-name/sh/shpool/package.nix new file mode 100644 index 0000000000000..34c59c05c563a --- /dev/null +++ b/pkgs/by-name/sh/shpool/package.nix @@ -0,0 +1,57 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + linux-pam, + testers, + shpool, +}: + +rustPlatform.buildRustPackage rec { + pname = "shpool"; + version = "0.6.3"; + + src = fetchFromGitHub { + owner = "shell-pool"; + repo = "shpool"; + rev = "v${version}"; + hash = "sha256-RzXlwzCMZ5nDnNfQHzqY9Wu7gvG8y39yR2W3cfl208w="; + }; + + + postPatch = '' + substituteInPlace systemd/shpool.service \ + --replace-fail '/usr/bin/shpool' "$out/bin/shpool" + ''; + + cargoHash = "sha256-Xb/ohGzgXR8B6Zfd2pUqgpxK6WQnk2xF4bbCyz1g2os="; + + buildInputs = [ + linux-pam + ]; + + # The majority of tests rely on impure environment + # (such as systemd socket, ssh socket), and some of them + # have race conditions. They don't print their full name, + # tried skipping them but failed + doCheck = false; + + postInstall = '' + install -Dm444 systemd/shpool.service -t $out/lib/systemd/user + install -Dm444 systemd/shpool.socket -t $out/lib/systemd/user + ''; + + passthru.tests.version = testers.testVersion { + command = "shpool version"; + package = shpool; + }; + + meta = { + description = "Persistent session management like tmux, but more lightweight"; + homepage = "https://github.com/shell-pool/shpool"; + license = lib.licenses.asl20; + mainProgram = "shpool"; + maintainers = with lib.maintainers; [ aleksana ]; + platforms = lib.platforms.linux; + }; +} |