diff options
Diffstat (limited to 'pkgs/by-name/by/byobu/package.nix')
-rw-r--r-- | pkgs/by-name/by/byobu/package.nix | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/pkgs/by-name/by/byobu/package.nix b/pkgs/by-name/by/byobu/package.nix new file mode 100644 index 0000000000000..bf6896f3153ae --- /dev/null +++ b/pkgs/by-name/by/byobu/package.nix @@ -0,0 +1,98 @@ +{ lib +, autoreconfHook +, bc +, fetchFromGitHub +, gettext +, makeWrapper +, perl +, python3 +, screen +, stdenv +, vim +, tmux +}: + +let + pythonEnv = python3.withPackages (ps: with ps; [ snack ]); +in +stdenv.mkDerivation (finalAttrs: { + pname = "byobu"; + version = "6.12"; + + src = fetchFromGitHub { + owner = "dustinkirkland"; + repo = "byobu"; + rev = finalAttrs.version; + hash = "sha256-NzC9Njsnz14mfKnERGDZw8O3vux0wnfCKwjUeTBQswc="; + }; + + nativeBuildInputs = [ + autoreconfHook + gettext + makeWrapper + ]; + + buildInputs = [ + perl # perl is needed for `lib/byobu/include/*` scripts + screen + tmux + ]; + + doCheck = true; + strictDeps = true; + + postPatch = '' + for file in usr/bin/byobu-export.in usr/lib/byobu/menu; do + substituteInPlace $file \ + --replace "gettext" "${gettext}/bin/gettext" + done + ''; + + postInstall = '' + # By some reason the po files are not being compiled + for po in po/*.po; do + lang=''${po#po/} + lang=''${lang%.po} + # Path where byobu looks for translations, as observed in the source code + # and strace + mkdir -p $out/share/byobu/po/$lang/LC_MESSAGES/ + msgfmt --verbose $po -o $out/share/byobu/po/$lang/LC_MESSAGES/byobu.mo + done + + # Override the symlinks, otherwise they mess with the wrapping + cp --remove-destination $out/bin/byobu $out/bin/byobu-screen + cp --remove-destination $out/bin/byobu $out/bin/byobu-tmux + + for file in $out/bin/byobu*; do + # We don't use the usual "-wrapped" suffix because arg0 within the shebang + # scripts points to the filename and byobu matches against this to know + # which backend to start with + bname="$(basename $file)" + mv "$file" "$out/bin/.$bname" + makeWrapper "$out/bin/.$bname" "$out/bin/$bname" \ + --argv0 $bname \ + --prefix PATH ":" "$out/bin" \ + --set BYOBU_PATH ${lib.makeBinPath [ vim bc ]} \ + --set BYOBU_PYTHON "${pythonEnv}/bin/python" + done + ''; + + meta = { + homepage = "https://www.byobu.org/"; + description = "Text-based window manager and terminal multiplexer"; + longDescription = '' + Byobu is a text-based window manager and terminal multiplexer. It was + originally designed to provide elegant enhancements to the otherwise + functional, plain, practical GNU Screen, for the Ubuntu server + distribution. Byobu now includes an enhanced profiles, convenient + keybindings, configuration utilities, and toggle-able system status + notifications for both the GNU Screen window manager and the more modern + Tmux terminal multiplexer, and works on most Linux, BSD, and Mac + distributions. + ''; + license = with lib.licenses; [ gpl3Plus ]; + mainProgram = "byobu"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.unix; + }; +}) |