about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLoveIsGrief <loveisgrief@tuta.io>2023-01-10 23:13:19 +0100
committerLoveIsGrief <loveisgrief@tuta.io>2023-01-13 15:27:12 +0100
commit268feffcaac9f5fa37d4be7d64d43d32e2088170 (patch)
treefec05c88968b3fb6eab4d071b887b8fb7d245b6a
parent7df27f13ee4177ebd2ee59a7ca89306addbfa63e (diff)
simple-dlna-browser: Add new package
A useful CLI script I found that's way light than VLC and other GUI apps since SSDP
 is pretty much a text-based protocol built on top of HTTP.
-rw-r--r--pkgs/tools/networking/simple-dlna-browser/default.nix68
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 70 insertions, 0 deletions
diff --git a/pkgs/tools/networking/simple-dlna-browser/default.nix b/pkgs/tools/networking/simple-dlna-browser/default.nix
new file mode 100644
index 0000000000000..c59a1e28910ad
--- /dev/null
+++ b/pkgs/tools/networking/simple-dlna-browser/default.nix
@@ -0,0 +1,68 @@
+{
+  # Derivation stuff
+  fetchFromGitHub,
+  lib,
+  makeWrapper,
+  stdenv,
+  # Dependencies
+  # Add these to the wrapper
+  curl,
+  gawk,
+  gnugrep,
+  gnused,
+  socat,
+  wget,
+}:
+stdenv.mkDerivation {
+  pname = "simple-dlna-browser";
+  version = "unstable-2023-01-09";
+
+  src = fetchFromGitHub {
+    owner = "javier-lopez";
+    repo = "learn";
+    sparseCheckout = [
+      "sh/tools/simple-dlna-browser"
+    ];
+    rev = "666e2c402723251ba19ce9d7c11b83b06c15a2c5";
+    sha256 = "sha256-jwPAEgti5DrjNnNVW/61GGTP+QedGAjz9kPwYhMAdTk=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    outputWrapper="$out/bin/simple-dlna-browser"
+    outputWrapped="$out/bin/wrapped-simple-dlna-browser"
+
+    mkdir -p $out/bin
+    cp sh/tools/simple-dlna-browser $outputWrapped
+    makeWrapper $outputWrapped $outputWrapper \
+      --prefix PATH : ${lib.makeBinPath [
+        curl
+        gawk
+        gnugrep
+        gnused
+        socat
+        wget
+      ]}
+
+    # Set the program name to a fixed value
+    # Normally it is guessed by the filename, but we don't want it to be the name of the wrapper
+    sed -i -e 's/PROGNAME=".*"/PROGNAME="simple-dlna-browser"/' $outputWrapped
+  '';
+
+  meta = {
+    description = "Query dlna media servers";
+    longDescription = ''
+      A bash script that allows simple interactions with [DLNA] media servers.
+      It is a light-weight, CLI alternative to [VLC], [Kodi], and other players.
+
+      [DLNA]: https://en.wikipedia.org/wiki/Digital_Living_Network_Alliance
+      [Kodi]: https://kodi.tv/
+      [VLC]: https://www.videolan.org/vlc/
+    '';
+    homepage = "https://github.com/javier-lopez/learn/blob/master/sh/tools/simple-dlna-browser";
+    license = lib.licenses.fair;
+    maintainers = with lib.maintainers; [ loveisgrief ];
+  };
+}
+
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2470aae99a266..bd241fc55ec31 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1455,6 +1455,8 @@ with pkgs;
 
   sgrep = callPackage ../tools/text/sgrep { };
 
+  simple-dlna-browser = callPackage ../tools/networking/simple-dlna-browser { };
+
   sorted-grep = callPackage ../tools/text/sorted-grep { };
 
   smbscan = callPackage ../tools/security/smbscan { };