Merge pull request #194648 from jtojnar/epgstation-updatescript
epgstation.updateScript: Fix eval and clean up
This commit is contained in:
commit
c72f22fd77
2 changed files with 50 additions and 67 deletions
|
@ -1,14 +1,11 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, gitUpdater
|
||||
, writers
|
||||
, makeWrapper
|
||||
, bash
|
||||
, nodejs
|
||||
, gzip
|
||||
, jq
|
||||
, yq
|
||||
, callPackage
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -33,7 +30,8 @@ let
|
|||
});
|
||||
|
||||
server = nodejs.pkgs.epgstation.override (drv: {
|
||||
inherit src;
|
||||
# NOTE: updateScript relies on version matching the src.
|
||||
inherit version src;
|
||||
|
||||
# This is set to false to keep devDependencies at build time. Build time
|
||||
# dependencies are pruned afterwards.
|
||||
|
@ -108,17 +106,7 @@ let
|
|||
|
||||
# NOTE: this may take a while since it has to update all packages in
|
||||
# nixpkgs.nodePackages
|
||||
passthru.updateScript = import ./update.nix {
|
||||
inherit lib;
|
||||
inherit (src.meta) homepage;
|
||||
inherit
|
||||
pname
|
||||
version
|
||||
gitUpdater
|
||||
writers
|
||||
jq
|
||||
yq;
|
||||
};
|
||||
passthru.updateScript = callPackage ./update.nix { };
|
||||
|
||||
# nodePackages.epgstation is a stub package to fetch npm dependencies and
|
||||
# its meta.platforms is made empty to prevent users from installing it
|
||||
|
|
|
@ -1,67 +1,62 @@
|
|||
{ pname
|
||||
, version
|
||||
, homepage
|
||||
, lib
|
||||
, gitUpdater
|
||||
{ gitUpdater
|
||||
, writers
|
||||
, jq
|
||||
, yq
|
||||
, gnused
|
||||
, _experimental-update-script-combinators
|
||||
}:
|
||||
|
||||
let
|
||||
updater = gitUpdater {
|
||||
inherit pname version;
|
||||
attrPath = lib.toLower pname;
|
||||
updateSource = gitUpdater {
|
||||
rev-prefix = "v";
|
||||
};
|
||||
updateScript = builtins.elemAt updater.command 0;
|
||||
updateArgs = map (lib.escapeShellArg) (builtins.tail updater.command);
|
||||
in writers.writeBash "update-epgstation" ''
|
||||
set -euxo pipefail
|
||||
updateLocks = writers.writeBash "update-epgstation" ''
|
||||
set -euxo pipefail
|
||||
|
||||
# bump the version
|
||||
${updateScript} ${lib.concatStringsSep " " updateArgs}
|
||||
cd "$1"
|
||||
|
||||
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 [[ "$UPDATE_NIX_OLD_VERSION" == "$(${jq}/bin/jq -r .version "$SRC/package.json")" ]]; then
|
||||
echo "[INFO] Already using the latest version of $UPDATE_NIX_PNAME" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
# 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
|
||||
${jq}/bin/jq '. + {
|
||||
dependencies: (.dependencies + .devDependencies),
|
||||
} | del(.devDependencies, .main, .scripts)' \
|
||||
"$SRC/client/package.json" \
|
||||
> client/package.json
|
||||
|
||||
# Regenerate package.json from the latest source.
|
||||
${jq}/bin/jq '. + {
|
||||
dependencies: (.dependencies + .devDependencies),
|
||||
} | del(.devDependencies, .main, .scripts)' \
|
||||
"$SRC/package.json" \
|
||||
> package.json
|
||||
${jq}/bin/jq '. + {
|
||||
dependencies: (.dependencies + .devDependencies),
|
||||
} | del(.devDependencies, .main, .scripts)' \
|
||||
"$SRC/client/package.json" \
|
||||
> client/package.json
|
||||
# Fix issue with old sqlite3 version pinned that depends on very old node-gyp 3.x
|
||||
${gnused}/bin/sed -i -e 's/"sqlite3":\s*"5.0.[0-9]\+"/"sqlite3": "5.0.11"/' package.json
|
||||
|
||||
# Fix issue with old sqlite3 version pinned that depends on very old node-gyp 3.x
|
||||
${gnused}/bin/sed -i -e 's/"sqlite3":\s*"5.0.[0-9]\+"/"sqlite3": "5.0.11"/' 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
|
||||
|
||||
# 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
|
||||
${yq}/bin/yq -j '{ urlscheme , stream }' \
|
||||
"$SRC/config/config.yml.template" \
|
||||
> streaming.json
|
||||
|
||||
# Generate default streaming settings for the nixos module.
|
||||
pushd ../../../../nixos/modules/services/video/epgstation
|
||||
${yq}/bin/yq -j '{ urlscheme , stream }' \
|
||||
"$SRC/config/config.yml.template" \
|
||||
> streaming.json
|
||||
|
||||
# Fix generated output for EditorConfig compliance
|
||||
printf '\n' >> streaming.json # rule: insert_final_newline
|
||||
popd
|
||||
''
|
||||
# Fix generated output for EditorConfig compliance
|
||||
printf '\n' >> streaming.json # rule: insert_final_newline
|
||||
popd
|
||||
'';
|
||||
in
|
||||
_experimental-update-script-combinators.sequence [
|
||||
updateSource
|
||||
[updateLocks ./.]
|
||||
]
|
||||
|
|
Loading…
Reference in a new issue