vscode-extensions.rust-analyzer: use global NPM packages to share dependencies

This commit is contained in:
oxalica
2020-04-11 16:01:12 +08:00
parent e8d04d3797
commit 8318c36a4b
6 changed files with 45 additions and 2312 deletions
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nix-prefetch nodePackages.node2nix
#!nix-shell -i bash -p curl jq nix-prefetch
set -euo pipefail
cd "$(dirname "$0")"
owner=rust-analyzer
@@ -46,23 +46,16 @@ sed "s/cargoSha256 = \".*\"/cargoSha256 = \"$cargo_sha256\"/" \
# Update vscode extension
echo "Generating node lock"
pushd "$nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer"
ext_version=$(jq '.version' "$node_src/package.json" --raw-output)
ext_publisher=$(jq '.publisher' "$node_src/package.json" --raw-output)
echo "Extension version: $ext_version"
[[ "$ext_publisher" == "matklad" ]]
node2nix \
--nodejs-12 \
--development \
--input "$node_src/package.json" \
--lock "$node_src/package-lock.json" \
--output ./node-packages.nix \
--composition ./node-composition.nix \
--no-copy-node-env \
--node-env ../../../development/node-packages/node-env.nix
sed -e 's_^.*src = [./]*/nix/store.*__g' \
--in-place ./node-packages.nix
sed -e "s/version = \".*\"/version = \"$ext_version\"/" \
--in-place ./default.nix
build_deps="../../../../misc/vscode-extensions/rust-analyzer/build-deps"
# We need devDependencies to build vsix.
jq '{ name, version, dependencies: (.dependencies + .devDependencies) }' "$node_src/package.json" \
>"$build_deps/package.json"
# FIXME: Lock the version of @type/vscode, the latest one (1.43.0) will cause build failure.
vscode_lock_ver="$(jq '.dependencies."@types/vscode".version' --raw-output "$node_src/package-lock.json")"
jq '.dependencies."@types/vscode" = "'$vscode_lock_ver'"' "$build_deps/package.json" >"$build_deps/package.json.new"
mv "$build_deps"/package.json{.new,}
pushd "../../../node-packages"
./generate.sh
popd