diff --git a/default.nix b/default.nix index ec6ecee..e329942 100644 --- a/default.nix +++ b/default.nix @@ -5,6 +5,7 @@ let callPackage = super.lib.callPackageWith self; in with self; rec { + bpytop = callPackage ./pkgs/bpytop { }; chrysalis = callPackage ./pkgs/chrysalis { }; diff --git a/pkgs/bpytop/default.nix b/pkgs/bpytop/default.nix new file mode 100644 index 0000000..feaebc1 --- /dev/null +++ b/pkgs/bpytop/default.nix @@ -0,0 +1,46 @@ +{ stdenv, python3Packages, fetchFromGitHub, makeWrapper, substituteAll }: + +stdenv.mkDerivation rec { + pname = "bpytop"; + version = "1.0.50"; + + src = fetchFromGitHub { + owner = "aristocratos"; + repo = pname; + rev = "v${version}"; + sha256 = "10j2g19sh2hl5lzbcllr862hkzr0mc1z8n24afzaycn1sphri8fc"; + }; + + buildInputs = [ makeWrapper ]; + propagatedBuildInputs = with python3Packages; [ python psutil ]; + + dontBuild = true; + + postPatch = '' + sed -i -e "s#/usr/\[local/\]#$out/#g" \ + -e "s#/usr/{td}#$out/#g" \ + -e "s#THEME_DIR: str = \"\"#THEME_DIR: str = \"$out/share/bpytop/themes\"#" \ + ./bpytop.py + ''; + + installPhase = '' + mkdir -p $out/{bin,libexec,share/bpytop}/ + cp -r ./themes $out/share/bpytop/ + cp ./bpytop.py $out/libexec/ + + makeWrapper ${python3Packages.python.interpreter} $out/bin/bpytop \ + --add-flags "$out/libexec/bpytop.py" \ + --prefix PYTHONPATH : "$PYTHONPATH" + ''; + + meta = with stdenv.lib; { + description = "A resource monitor; python port of bashtop"; + homepage = src.meta.homepage; + license = licenses.apsl20; + maintainers = with maintainers; [ aw ]; + platforms = with platforms; linux ++ freebsd ++ darwin; + + # https://github.com/NixOS/nixpkgs/pull/94625#issuecomment-668509399 + broken = stdenv.isDarwin; + }; +}