about summary refs log tree commit diff stats
path: root/pkgs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-11 13:27:35 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-11 13:27:35 +0200
commit4f6baddf4fb3c3956847b99efcf2f2ae41fe3a01 (patch)
treedef9be26f3edb4e8593d3f4d06427c1b4f0768d5 /pkgs
parentrefactor(home/beets): Move the plugins out into separate directories (diff)
downloadnixos-config-4f6baddf4fb3c3956847b99efcf2f2ae41fe3a01.tar.gz
nixos-config-4f6baddf4fb3c3956847b99efcf2f2ae41fe3a01.zip
feat(home/beets): Init the xtractor plugin
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/by-name/be/beetsExtraPlugins/package.nix3
-rw-r--r--pkgs/by-name/be/beetsExtraPlugins/xtractor.nix54
2 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/by-name/be/beetsExtraPlugins/package.nix b/pkgs/by-name/be/beetsExtraPlugins/package.nix
new file mode 100644
index 00000000..0da472fa
--- /dev/null
+++ b/pkgs/by-name/be/beetsExtraPlugins/package.nix
@@ -0,0 +1,3 @@
+{pkgs, ...}: {
+  xtractor = pkgs.callPackage ./xtractor.nix {beets = pkgs.beetsPackages.beets-minimal;};
+}
diff --git a/pkgs/by-name/be/beetsExtraPlugins/xtractor.nix b/pkgs/by-name/be/beetsExtraPlugins/xtractor.nix
new file mode 100644
index 00000000..01c6207a
--- /dev/null
+++ b/pkgs/by-name/be/beetsExtraPlugins/xtractor.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  fetchFromGitHub,
+  python3Packages,
+  beets,
+}:
+# FIXME: Find a way to update this derivation <2024-08-11>
+let
+  version = "0.4.2";
+  models = builtins.fetchTarball {
+    url = "https://essentia.upf.edu/svm_models/essentia-extractor-svm_models-v2.1_beta5.tar.gz";
+    sha256 = "11ps1l4h8bl4l9rlvkhjs61908l18dh7mpq65brm8ki99hnp9g64";
+  };
+in
+  python3Packages.buildPythonApplication {
+    inherit version;
+    pname = "beets-xtractor";
+    pyproject = true;
+
+    src = fetchFromGitHub {
+      repo = "BeetsPluginXtractor";
+      owner = "adamjakab";
+      rev = "v${version}";
+      hash = "sha256-it4qQ2OS4qBEaGLJK8FVGpjlvg0MQICazV7TAM8lH9s=";
+    };
+
+    nativeBuildInputs = [
+      beets
+      python3Packages.setuptools
+    ];
+
+    passthru = {inherit models;};
+
+    nativeCheckInputs = with python3Packages; [
+      pytestCheckHook
+      pytest-cov
+      mock
+      typeguard
+    ];
+
+    preCheck = ''
+      export HOME="$(mktemp -d)"
+    '';
+    postInstall = ''
+      mkdir --parents $out/models
+      cp ${models}/* $out/models
+    '';
+
+    meta = {
+      description = "Obtain low and high level musical information from your song";
+      homepage = "https://github.com/adamjakab/BeetsPluginXtractor/releasesfhhhhh";
+      license = lib.licenses.mit;
+    };
+  }