diff --git a/pkgs/default.nix b/pkgs/default.nix index 1058b696..74cda2c1 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -53,6 +53,7 @@ let watc = callPackage ./watc { }; wayback = callPackage ./wayback.nix { }; wzmach = callPackage ./wzmach { }; + ymuse = callPackage ./ymuse { }; }; in lib.fix (lib.extends overrides packages) diff --git a/pkgs/ymuse/default.nix b/pkgs/ymuse/default.nix new file mode 100644 index 00000000..f6fd1670 --- /dev/null +++ b/pkgs/ymuse/default.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, fetchFromGitHub, buildGoModule, wrapGAppsHook, pkg-config, + glib, gobject-introspection, gtk3, gdk-pixbuf, gettext, librsvg }: + +buildGoModule rec { + pname = "ymuse"; + version = "0.20"; + + src = fetchFromGitHub { + owner = "yktoo"; + repo = "ymuse"; + rev = "v${version}"; + sha256 = "sha256-wDQjNBxwxFVFdSswubp4AVD35aXKJ8i0ahk/tgRsDRc="; + }; + vendorSha256 = "sha256-Ap/nf0NT0VkP2k9U1HzEiptDfLjKkBopP5h0czP3vis="; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook + glib + gobject-introspection + gdk-pixbuf + gettext + ]; + + buildInputs = [ + gtk3 + librsvg + ]; + + postInstall = '' + install -Dm644 ./resources/ymuse.desktop -t $out/share/applications + cp -r ./resources/icons $out/share + + app_id="ymuse" + find ./resources/i18n -type f -name '*.po' | + while read file; do + # Language is the filename without the extension + lang="$(basename "$file")" + lang="''${lang%.*}" + + # Create the target dir if needed + target_dir="$out/share/locale/$lang/LC_MESSAGES" + mkdir -p "$target_dir" + + # Compile the .po into a .mo + echo "Compiling $file" into "$target_dir/$app_id.mo" + msgfmt "$file" -o "$target_dir/$app_id.mo" + done + ''; + + # IDK how to deal with tests that open up display. + doCheck = false; + + meta = with lib; { + homepage = "https://yktoo.com/en/software/ymuse/"; + description = "GTK client for Music Player Daemon (MPD)"; + license = licenses.asl20; + }; +}