about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/au/audiobookshelf/wrapper.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/au/audiobookshelf/wrapper.nix')
-rw-r--r--nixpkgs/pkgs/by-name/au/audiobookshelf/wrapper.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/au/audiobookshelf/wrapper.nix b/nixpkgs/pkgs/by-name/au/audiobookshelf/wrapper.nix
new file mode 100644
index 000000000000..787ee5ac4917
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/au/audiobookshelf/wrapper.nix
@@ -0,0 +1,61 @@
+{ stdenv, ffmpeg-full, tone, pname, nodejs, getopt }: ''
+    #!${stdenv.shell}
+
+    port=8000
+    host=0.0.0.0
+    config=$(pwd)/config
+    metadata=$(pwd)/metadata
+
+    LONGOPTS=host:,port:,config:,metadata:,help
+    args=$(${getopt}/bin/getopt -l "$LONGOPTS" -o h -- "$@")
+
+    eval set -- "$args"
+
+    while [ $# -ge 1 ]; do
+      case "$1" in
+        --)
+          # No more options left.
+          shift
+          break
+          ;;
+        --host)
+          host="$2"
+          shift
+          ;;
+        --port)
+          port="$2"
+          shift
+          ;;
+        --config)
+          if [[ "''${2:0:1}" = "/" ]]; then
+            config="$2"
+          else
+            config="$(pwd)/$2"
+          fi
+          shift
+          ;;
+        --metadata)
+          if [[ "''${2:0:1}" = "/" ]]; then
+            metadata="$2"
+          else
+            metadata="$(pwd)/$2"
+          fi
+          shift
+          ;;
+        --help|-h)
+          echo "Usage: audiobookshelf [--host <host>] [--port <port>] [--metadata <dir>] [--config <dir>]"
+          exit 0
+          ;;
+      esac
+      shift
+    done
+
+    NODE_ENV=production \
+      SOURCE=nixpkgs \
+      FFMPEG_PATH=${ffmpeg-full}/bin/ffmpeg \
+      FFPROBE_PATH=${ffmpeg-full}/bin/ffprobe \
+      TONE_PATH=${tone}/bin/tone \
+      CONFIG_PATH="$config" \
+      METADATA_PATH="$metadata" \
+      PORT="$port" \
+      HOST="$host" \''