uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
50
pkgs/tools/admin/meshcentral/update.sh
Executable file
50
pkgs/tools/admin/meshcentral/update.sh
Executable file
|
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nodejs yarn yarn2nix jq rsync common-updater-scripts moreutils
|
||||
|
||||
set -exuo pipefail
|
||||
|
||||
expr_dir=$(cd "$(dirname "$0")"; pwd)
|
||||
tmp=$(mktemp -dt update-meshcentral.XXXXXX)
|
||||
|
||||
npm show --json meshcentral > "$tmp/npm.json"
|
||||
version=$(<"$tmp/npm.json" jq -r .version)
|
||||
tarball=$(<"$tmp/npm.json" jq -r .dist.tarball)
|
||||
|
||||
prefetch=$(nix-prefetch-url --unpack --print-path "$tarball" | tr '\n' ' ')
|
||||
read -r hash storePath <<<"$prefetch"
|
||||
cd "$tmp"
|
||||
rsync -r --chmod=u=rwX "$storePath/" package/
|
||||
cd package
|
||||
|
||||
# Very crude way of discovering optional dependencies. These are
|
||||
# fetched at runtime by stock upstream, but we don't allow that kind
|
||||
# of thing in nix :)
|
||||
awk <meshcentral.js "
|
||||
BEGIN { RS=\"[\n;]\" }
|
||||
match(\$0, /(modules|passport) = (\[.*\])$/, a) { print a[2] }
|
||||
match(\$0, /(modules|passport).push\(('[^']+')\)/, a) { print a[2] }
|
||||
" |
|
||||
tr \' \" |
|
||||
jq --slurp '[if type == "array" then .[] else . end] | flatten' |
|
||||
# And an equally crude way of adding them to package.json. We
|
||||
# can't use yarn add here, because that will blow up on
|
||||
# dependencies which don't support the current platform. Even with
|
||||
# --optional.
|
||||
jq --slurpfile package package.json \
|
||||
'(. | map(. | capture("(?<name>@?[^@]+)(@(?<version>.+))?") | { key: .name, value: (.version // "*")}) | from_entries) as $optionalDependencies | $package | .[] | .optionalDependencies |= . + $optionalDependencies' |
|
||||
sponge package.json
|
||||
|
||||
# Fetch all the optional dependencies, so we have them available in
|
||||
# yarn.lock/yarn.nix
|
||||
yarn install --ignore-scripts
|
||||
|
||||
cp package.json "$expr_dir"
|
||||
cp yarn.lock "$expr_dir/yarn.lock"
|
||||
yarn2nix > "$expr_dir/yarn.nix"
|
||||
|
||||
cd "$expr_dir/../../../.."
|
||||
update-source-version meshcentral "$version" "$hash" "$tarball"
|
||||
|
||||
# Only clean up if everything worked
|
||||
cd /
|
||||
rm -rf "$tmp"
|
||||
Loading…
Add table
Add a link
Reference in a new issue