about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLev Livnev <lev@liv.nev.org.uk>2019-02-24 18:08:35 +0000
committerLev Livnev <lev@liv.nev.org.uk>2019-07-22 17:56:27 +0100
commitcd032364b6598a175b80b1f5e26ec7f24b8f0141 (patch)
tree73ce8c006671a7291ac9da8d0efe667e7371fe98
parent631b2348f356ce7e3e46b3327b7adcd03abd51cd (diff)
tree-from-tags: init at 1.1
tree-from-tags is a tool for organising tagged audio into a tree,
commonly used with bongo, a buffer-oriented media player for emacs
-rw-r--r--pkgs/applications/audio/tree-from-tags/Gemfile3
-rw-r--r--pkgs/applications/audio/tree-from-tags/Gemfile.lock13
-rw-r--r--pkgs/applications/audio/tree-from-tags/default.nix37
-rw-r--r--pkgs/applications/audio/tree-from-tags/gemset.nix10
-rw-r--r--pkgs/top-level/all-packages.nix2
5 files changed, 65 insertions, 0 deletions
diff --git a/pkgs/applications/audio/tree-from-tags/Gemfile b/pkgs/applications/audio/tree-from-tags/Gemfile
new file mode 100644
index 0000000000000..24f308f3f4233
--- /dev/null
+++ b/pkgs/applications/audio/tree-from-tags/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "taglib-ruby"
diff --git a/pkgs/applications/audio/tree-from-tags/Gemfile.lock b/pkgs/applications/audio/tree-from-tags/Gemfile.lock
new file mode 100644
index 0000000000000..2ef77caa6f69e
--- /dev/null
+++ b/pkgs/applications/audio/tree-from-tags/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    taglib-ruby (0.7.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  taglib-ruby
+
+BUNDLED WITH
+   1.16.3
diff --git a/pkgs/applications/audio/tree-from-tags/default.nix b/pkgs/applications/audio/tree-from-tags/default.nix
new file mode 100644
index 0000000000000..cdee979768cf5
--- /dev/null
+++ b/pkgs/applications/audio/tree-from-tags/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, bundlerEnv, ruby, fetchFromGitHub }:
+let
+  version = "1.1";
+  gems = bundlerEnv {
+    name = "tree-from-tags-${version}-gems";
+    inherit ruby;
+    gemdir  = ./.;
+  };
+in stdenv.mkDerivation {
+  name = "tree-from-tags-${version}";
+  src = fetchFromGitHub {
+    owner  = "dbrock";
+    repo   = "bongo";
+    rev    = version;
+    sha256 = "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv";
+  };
+  buildInputs = [ gems ruby ];
+  installPhase = ''
+    mkdir -p $out/{bin,share}
+    cp tree-from-tags.rb $out/share/
+    bin=$out/bin/tree-from-tags
+# we are using bundle exec to start in the bundled environment
+    cat > $bin <<EOF
+#!/bin/sh -e
+exec ${gems}/bin/bundle exec ${ruby}/bin/ruby "$out"/share/tree-from-tags.rb "\$@"
+EOF
+    chmod +x $bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Create file hierarchies from media tags";
+    homepage = https://www.emacswiki.org/emacs/Bongo;
+    platforms = ruby.meta.platforms;
+    maintainers = [ maintainers.livnev maintainers.dbrock ];
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/audio/tree-from-tags/gemset.nix b/pkgs/applications/audio/tree-from-tags/gemset.nix
new file mode 100644
index 0000000000000..20e10e9d93b04
--- /dev/null
+++ b/pkgs/applications/audio/tree-from-tags/gemset.nix
@@ -0,0 +1,10 @@
+{
+  taglib-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r8g7zdncc6243d000jn0grc1n70rn9mx16vggy3q7c4wgsa37xi";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 03ae106c481a8..422f37c60e719 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -20646,6 +20646,8 @@ in
 
   trayer = callPackage ../applications/window-managers/trayer { };
 
+  tree-from-tags = callPackage ../applications/audio/tree-from-tags { };
+
   tdrop = callPackage ../applications/misc/tdrop { };
 
   tree = callPackage ../tools/system/tree {};