btrbk: add mainProgram
[NixPkgs.git] / pkgs / by-name / au / audiobookshelf / wrapper.nix
blob4dabeae303b1adc2ed1c0e45ee5c0b1700410291
2   stdenv,
3   ffmpeg-full,
4   nunicode,
5   getopt,
6 }: ''
7     #!${stdenv.shell}
9     port=8000
10     host=0.0.0.0
11     config=$(pwd)/config
12     metadata=$(pwd)/metadata
14     LONGOPTS=host:,port:,config:,metadata:,help
15     args=$(${getopt}/bin/getopt -l "$LONGOPTS" -o h -- "$@")
17     eval set -- "$args"
19     while [ $# -ge 1 ]; do
20       case "$1" in
21         --)
22           # No more options left.
23           shift
24           break
25           ;;
26         --host)
27           host="$2"
28           shift
29           ;;
30         --port)
31           port="$2"
32           shift
33           ;;
34         --config)
35           if [[ "''${2:0:1}" = "/" ]]; then
36             config="$2"
37           else
38             config="$(pwd)/$2"
39           fi
40           shift
41           ;;
42         --metadata)
43           if [[ "''${2:0:1}" = "/" ]]; then
44             metadata="$2"
45           else
46             metadata="$(pwd)/$2"
47           fi
48           shift
49           ;;
50         --help|-h)
51           echo "Usage: audiobookshelf [--host <host>] [--port <port>] [--metadata <dir>] [--config <dir>]"
52           exit 0
53           ;;
54       esac
55       shift
56     done
58     NODE_ENV=production \
59       SOURCE=nixpkgs \
60       SKIP_BINARIES_CHECK=1 \
61       FFMPEG_PATH=${ffmpeg-full}/bin/ffmpeg \
62       FFPROBE_PATH=${ffmpeg-full}/bin/ffprobe \
63       NUSQLITE3_PATH=${nunicode.sqlite}/lib/libnusqlite3 \
64       CONFIG_PATH="$config" \
65       METADATA_PATH="$metadata" \
66       PORT="$port" \
67       HOST="$host" \''