awk-language-server: move to yarn*Hooks and stdenv.mkDerivation (#493009)
This commit is contained in:
@@ -1,59 +0,0 @@
|
||||
{
|
||||
"name": "awk-language-server",
|
||||
"description": "AWK Language Server",
|
||||
"version": "0.10.6",
|
||||
"author": "Stanislav Chernov <ch-e-st@yandex.ru>",
|
||||
"publisher": "beaglefoot",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"language-server",
|
||||
"language-server-protocol",
|
||||
"lsp",
|
||||
"awk",
|
||||
"gawk"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
},
|
||||
"bin": "./server/out/cli.js",
|
||||
"main": "./server/out/server.js",
|
||||
"typings": "./server/out/server.d.ts",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Beaglefoot/awk-language-server"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": "1.2.6",
|
||||
"tree-sitter-awk": "0.7.2",
|
||||
"vscode-languageserver": "^7.0.0",
|
||||
"vscode-languageserver-textdocument": "^1.0.1",
|
||||
"web-tree-sitter": "0.22.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/minimist": "1.2.2",
|
||||
"@types/jest": "27.0.1",
|
||||
"@types/node": "^12.12.0",
|
||||
"jest": "27.1.1",
|
||||
"prettier": "2.3.2",
|
||||
"ts-jest": "27.0.5",
|
||||
"typescript": "^4.3.2"
|
||||
},
|
||||
"scripts": {
|
||||
"build:completion": "man gawk | gawk -f scripts/build_completion_list.awk > docs.json",
|
||||
"prepublishOnly": "cd .. && yarn build:server:force",
|
||||
"clean:client": "rm -rfv client/out/*",
|
||||
"clean:server": "rm -rfv server/out/*",
|
||||
"build": "yarn build:server && yarn build:client",
|
||||
"build:client": "tsc -b client/tsconfig.json",
|
||||
"build:client:force": "yarn clean:client && yarn build:client --verbose --force",
|
||||
"build:server": "tsc -b server/tsconfig.json",
|
||||
"build:server:force": "yarn clean:server && yarn build:server --verbose --force",
|
||||
"postinstall": "cd client && yarn && cd ../server && yarn && cd ..",
|
||||
"test": "jest",
|
||||
"test:server": "jest server/tests",
|
||||
"test:ci": "jest --runInBand",
|
||||
"check:types": "tsc --noEmit -p server/tsconfig.json",
|
||||
"check:style": "prettier --check **/*.ts"
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
@@ -1,19 +1,24 @@
|
||||
{
|
||||
lib,
|
||||
mkYarnPackage,
|
||||
fetchYarnDeps,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
jq,
|
||||
fetchYarnDeps,
|
||||
|
||||
yarnConfigHook,
|
||||
yarnBuildHook,
|
||||
npmHooks,
|
||||
nodejs,
|
||||
}:
|
||||
|
||||
mkYarnPackage rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
name = "awk-language-server";
|
||||
version = "0.10.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Beaglefoot";
|
||||
repo = "awk-language-server";
|
||||
tag = "server-${version}";
|
||||
tag = "server-${finalAttrs.version}";
|
||||
hash = "sha256-YtduDfMAUAoQY9tgyhgERFwx9TEgD52KdeHnX2MrjjI=";
|
||||
sparseCheckout = [ "server" ];
|
||||
postFetch = ''
|
||||
@@ -32,30 +37,20 @@ mkYarnPackage rec {
|
||||
'';
|
||||
};
|
||||
|
||||
packageJSON = ./package.json;
|
||||
yarnLock = ./yarn.lock;
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = ./yarn.lock;
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${finalAttrs.src}/yarn.lock";
|
||||
hash = "sha256-PaebqpXQGBxqcaxun8zi6TPeIgHmY+2fjsE/3LaWPN8=";
|
||||
};
|
||||
|
||||
distPhase = "true";
|
||||
nativeBuildInputs = [
|
||||
yarnConfigHook
|
||||
yarnBuildHook
|
||||
npmHooks.npmInstallHook
|
||||
nodejs
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
yarn --offline build:server
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
chmod +x $out/bin/awk-language-server
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
yarnBuildScript = "build:server";
|
||||
dontNpmPrune = true;
|
||||
|
||||
meta = {
|
||||
description = "Language Server for AWK and associated VSCode client extension";
|
||||
@@ -64,4 +59,4 @@ mkYarnPackage rec {
|
||||
maintainers = with lib.maintainers; [ mathiassven ];
|
||||
mainProgram = "awk-language-server";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p common-updater-scripts coreutils gnused prefetch-yarn-deps
|
||||
|
||||
set -e
|
||||
|
||||
# update src version and hash
|
||||
version="$(list-git-tags | sort -V | tail -1 | sed 's|server-||')"
|
||||
|
||||
update-source-version awk-language-server "$version"
|
||||
|
||||
# update vendored yarn.lock & package.json
|
||||
newSrc="$(nix-build --no-out-link -A awk-language-server.src)"
|
||||
|
||||
nixFile="$(nix-instantiate --eval --strict -A 'awk-language-server.meta.position' \
|
||||
| sed -re 's/^"(.*):[0-9]+"$/\1/')"
|
||||
|
||||
nixFileDir="$(dirname "$nixFile")"
|
||||
|
||||
cp --force --no-preserve=mode "$newSrc"/{yarn.lock,package.json} "$nixFileDir/"
|
||||
|
||||
# update offlineCache hash
|
||||
oldCacheSriHash="$(nix-instantiate --eval --strict \
|
||||
-A 'awk-language-server.offlineCache.drvAttrs.outputHash')"
|
||||
|
||||
newCacheHash="$(prefetch-yarn-deps "$nixFileDir/yarn.lock")"
|
||||
|
||||
newCacheSriHash="$(nix-hash --to-sri --type sha256 "$newCacheHash")"
|
||||
|
||||
sed -i "s|$oldCacheSriHash|\"$newCacheSriHash\"|" "$nixFile"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user