Commit f1e0916d authored by Sigmanificient's avatar Sigmanificient
Browse files

cavalcade: init at 0.8

parent 81c68106
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line
{
  lib,
  python3Packages,
  fetchFromGitHub,
  gtk3,
  cava,
  gst_all_1,
  gobject-introspection,
  wrapGAppsHook3,
  copyDesktopItems,
  makeDesktopItem,
  fetchurl,
}:

python3Packages.buildPythonApplication rec {
  pname = "cavalcade";
  version = "0.8";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "worron";
    repo = "cavalcade";
    rev = "refs/tags/${version}";
    hash = "sha256-VyWOPNidN0+pfuxsgPWq6lI5gXQsiRpmYjQYjZW6i9w=";
  };

  postPatch = ''
    substituteInPlace cavalcade/cava.py \
      --replace-fail '"cava"' '"${cava}/bin/cava"'
  '';

  build-system = [ python3Packages.setuptools ];

  dependencies = with python3Packages; [
    pygobject3
    gst-python
    pillow
  ];

  nativeBuildInputs = [
    wrapGAppsHook3
    copyDesktopItems
    gobject-introspection
    gst_all_1.gstreamer
  ];

  buildInputs = [ gtk3 ];

  desktopItems = [
    (makeDesktopItem {
      name = "Cavalcade";
      type = "Application";
      exec = "cavalcade";
      icon = fetchurl {
        url = "https://raw.githubusercontent.com/worron/cavalcade/68ba5a2b2effd1c46b0568f4a27852689c2cdf32/desktop/cavalcade.svg";
        hash = "sha256-GJR5kUmSnFG6dE+o2UWKaHmiKPZNDGZZqXCIP8o883M=";
      };
      comment = "CAVA GUI";
      categories = [
        "AudioVideo"
        "Audio"
        "GTK"
      ];
      desktopName = "Cavalcade";
    })
  ];

  meta = {
    description = "Python wrapper for C.A.V.A. utility with a GUI";
    homepage = "https://github.com/worron/cavalcade";
    license = lib.licenses.gpl3Only;
    maintainers = with lib.maintainers; [ sigmanificient ];
  };
}