diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-11-02 19:53:17 +0100 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-11-05 22:47:43 +0100 |
| commit | 5ca82ffa08af81f36ec998e7f49f53af7496a93a (patch) | |
| tree | 5df14a39ca08d7bcbd98659d66a4b6d2d6e27500 /pkgs/by-name/mp/mpp/package.unstable.nix | |
| parent | modules/*: Always use `extra_lib`, also for `options.mkEnable` (diff) | |
| download | nixos-config-5ca82ffa08af81f36ec998e7f49f53af7496a93a.zip | |
pkgs/*: Use a `stable`/`unstable` marker in the filename
Diffstat (limited to 'pkgs/by-name/mp/mpp/package.unstable.nix')
| -rw-r--r-- | pkgs/by-name/mp/mpp/package.unstable.nix | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/pkgs/by-name/mp/mpp/package.unstable.nix b/pkgs/by-name/mp/mpp/package.unstable.nix new file mode 100644 index 00000000..fe08ba46 --- /dev/null +++ b/pkgs/by-name/mp/mpp/package.unstable.nix @@ -0,0 +1,90 @@ +# nixos-config - My current NixOS configuration +# +# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de> +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of my nixos-config. +# +# You should have received a copy of the License along with this program. +# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. +{ + writeShellApplication, + symlinkJoin, + stdenv, + # Dependencies + mpc, + mpp-searchadd, + mpp-lyrics, + mpp-beetrm, + mpdpopm, + # Build dependencies + fd, + zsh, +}: let + script = writeShellApplication { + name = "mpp"; + text = builtins.readFile ./mpp.sh; + inheritPath = false; + + runtimeInputs = [ + mpc + mpp-searchadd + mpp-lyrics + mpp-beetrm + mpdpopm + ]; + }; + + mpcShare = stdenv.mkDerivation { + name = "mpp-only-share"; + nativeBuildInputs = [fd]; + strictDeps = true; + + src = mpc; + + buildPhase = '' + fixMpc() { + file_path="$1" + + new_file_path="$(echo "$file_path" | sed "s|mpc|mpp|g")" + + echo "Fixing '$file_path' -> '$new_file_path'.." + + [ -f "$file_path"] && mkdir --parents "$(dirname "$new_file_path")" + + mv "$file_path" "$new_file_path" + } + + # Copy the zsh bundled `mpc` completions to `mpp` + # TODO: Also add completions for the new subcommands <2024-11-17> + mkdir --parents share/zsh/site-functions; + cp "${zsh}/share/zsh/${zsh.version}/functions/_mpc" "share/zsh/site-functions" + + # Replace all reverences to `mpc`. First all files + fd "mpc" "." --hidden --type file | while read -r file_path; do + fixMpc "$file_path" + done + # Then their possible parent directories. + fd "mpc" "." --hidden --type directory | while read -r file_path; do + fixMpc "$file_path" + done + # Now patch all reverences to `mpc` away + fd "." --hidden --type file | while read -r file_path; do + sed --in-place 's/mpc/mpp/g' "$file_path" + done + + # TODO(@bpeetz): Also change this in man-pages. <2025-05-20> + ''; + + installPhase = '' + mkdir "$out"; + cp --recursive ./share "$out/share"; + ''; + }; +in + symlinkJoin { + name = "mpp"; + paths = [script mpcShare]; + + inherit (script) meta; + } |
