diff options
Diffstat (limited to 'pkgs/applications/audio/groovebasin/default.nix')
-rw-r--r-- | pkgs/applications/audio/groovebasin/default.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/applications/audio/groovebasin/default.nix b/pkgs/applications/audio/groovebasin/default.nix new file mode 100644 index 00000000000..e7ac20367dd --- /dev/null +++ b/pkgs/applications/audio/groovebasin/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchFromGitHub, makeWrapper, callPackage, libgroove, python, utillinux }: + +with stdenv.lib; + +let + nodePackages = callPackage (import ../../../top-level/node-packages.nix) { + neededNatives = [ libgroove python utillinux ]; + self = nodePackages; + generated = ./package.nix; + }; + +in nodePackages.buildNodePackage rec { + version = "1.5.1"; + name = "groovebasin-${version}"; + + src = fetchFromGitHub { + owner = "andrewrk"; + repo = "groovebasin"; + rev = "${version}"; + sha256 = "1g7v0qhvgzpb050hf45pibp68qd67hnnry5npw58f4dvaxdd8yhd"; + }; + + deps = (filter (v: nixType v == "derivation") (attrValues nodePackages)); + + buildInputs = [ makeWrapper ]; + + postInstall = '' + mkdir -p "$out/lib/node_modules/groovebasin/public" + stylus -o "$out/lib/node_modules/groovebasin/public/" -c --include-css "$out/lib/node_modules/groovebasin/src/client/styles" + browserify-lite "$out/lib/node_modules/groovebasin/src/client/app.js" --outfile "$out/lib/node_modules/groovebasin/public/app.js" + wrapProgram "$out/bin/groovebasin" --set NODE_PATH "$out/lib/node_modules/groovebasin/node_modules/" + ''; + + passthru.names = ["groovebasin"]; + + meta = { + description = "Music player server with a web-based user interface"; + homepage = http://groovebasin.com/; + license = licenses.mit; + platforms = platforms.unix; + longDescription = '' + Groove Basin runs on a server optionally connected to speakers. Guests can + control the music player by connecting with a laptop, tablet, or smart phone. + Further, users can stream their music libraries remotely. + + Groove Basin comes with a fast, responsive web interface that supports keyboard + shortcuts and drag drop. It also provides the ability to upload songs, + download songs, and import songs by URL, including YouTube URLs. + + Groove Basin supports Dynamic Mode which automatically queues random songs, + favoring songs that have not been queued recently. + + Groove Basin automatically performs ReplayGain scanning on every song using + the EBU R128 loudness standard, and automatically switches between track + and album mode. + + Groove Basin supports the MPD protocol, which means it is compatible with MPD + clients. There is also a more powerful Groove Basin protocol which you can + use if the MPD protocol does not meet your needs. + + Groove Basin supports Last.fm scrobbling. + ''; + }; +} |