aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix66
1 files changed, 66 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix
new file mode 100644
index 000000000000..9faa83c64f9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/video/epgstation/update.nix
@@ -0,0 +1,66 @@
+{ pname
+, version
+, homepage
+, lib
+, common-updater-scripts
+, genericUpdater
+, writers
+, jq
+}:
+
+let
+ updater = genericUpdater {
+ inherit pname version;
+ attrPath = lib.toLower pname;
+ rev-prefix = "v";
+ versionLister = "${common-updater-scripts}/bin/list-git-tags ${homepage}";
+ };
+ updateScript = builtins.elemAt updater 0;
+ updateArgs = map (lib.escapeShellArg) (builtins.tail updater);
+in writers.writeBash "update-epgstation" ''
+ set -euxo pipefail
+
+ # bump the version
+ ${updateScript} ${lib.concatStringsSep " " updateArgs}
+
+ cd "${toString ./.}"
+
+ # Get the path to the latest source. Note that we can't just pass the value
+ # of epgstation.src directly because it'd be evaluated before we can run
+ # updateScript.
+ SRC="$(nix-build ../../../.. --no-out-link -A epgstation.src)"
+ if [[ "${version}" == "$(${jq}/bin/jq -r .version "$SRC/package.json")" ]]; then
+ echo "[INFO] Already using the latest version of ${pname}" >&2
+ exit
+ fi
+
+ # Regenerate package.json from the latest source.
+ ${jq}/bin/jq '. + {
+ dependencies: (.dependencies + .devDependencies),
+ } | del(.devDependencies, .main, .scripts)' \
+ "$SRC/package.json" \
+ > package.json
+
+ # Regenerate node packages to update the pre-overriden epgstation derivation.
+ # This must come *after* package.json has been regenerated.
+ pushd ../../../development/node-packages
+ ./generate.sh
+ popd
+
+ # Generate default streaming settings for the nixos module.
+ pushd ../../../../nixos/modules/services/video/epgstation
+ ${jq}/bin/jq '
+ { liveHLS
+ , liveMP4
+ , liveWebM
+ , mpegTsStreaming
+ , mpegTsViewer
+ , recordedDownloader
+ , recordedStreaming
+ , recordedHLS
+ , recordedViewer
+ }' \
+ "$SRC/config/config.sample.json" \
+ > streaming.json
+ popd
+''