ansible-language-server: init at 26.1.3
This commit is contained in:
@@ -7227,6 +7227,11 @@
|
||||
name = "Tom van Dijk";
|
||||
keys = [ { fingerprint = "D044 F07B 8863 B681 26BD 79FE 7A98 4C82 07AD BA51"; } ];
|
||||
};
|
||||
dtvillafana = {
|
||||
github = "dtvillafana";
|
||||
githubId = 82293276;
|
||||
name = "David Villafaña";
|
||||
};
|
||||
dudeofawesome = {
|
||||
email = "tourist-04.iced@icloud.com";
|
||||
github = "dudeofawesome";
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
pname = "ansible-language-server";
|
||||
version = "26.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ansible";
|
||||
repo = "vscode-ansible";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-DsEW3xP8Fa9nwPuyEFVqG6rvAZgr4TDB6jhyixdvqt8=";
|
||||
};
|
||||
|
||||
# Fixed-output derivation to fetch yarn berry dependencies
|
||||
offlineCache = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "${pname}-${version}-yarn-cache";
|
||||
inherit src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgs.yarn-berry
|
||||
pkgs.nodejs
|
||||
pkgs.cacert
|
||||
];
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "sha256-NYbHhvlVoSL7lT1EdFkNJlmzRzQ0Gudo5pF0t6JtSic=";
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$TMPDIR
|
||||
export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
|
||||
|
||||
yarn config set enableTelemetry false
|
||||
yarn config set enableGlobalCache false
|
||||
yarn config set cacheFolder .yarn/cache
|
||||
yarn install --mode=skip-build
|
||||
|
||||
mkdir -p $out
|
||||
cp -r .yarn/cache/* $out/
|
||||
cp .yarnrc.yml $out/ || true
|
||||
'';
|
||||
|
||||
dontInstall = true;
|
||||
};
|
||||
|
||||
in
|
||||
pkgs.stdenvNoCC.mkDerivation {
|
||||
inherit pname version src;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
yarn-berry
|
||||
nodejs
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$TMPDIR
|
||||
|
||||
# Set up yarn cache from our FOD
|
||||
mkdir -p .yarn/cache
|
||||
for f in ${offlineCache}/*; do
|
||||
if [ "$(basename $f)" != ".yarnrc.yml" ]; then
|
||||
cp -r "$f" .yarn/cache/
|
||||
fi
|
||||
done
|
||||
|
||||
yarn config set enableTelemetry false
|
||||
yarn config set enableGlobalCache false
|
||||
yarn config set cacheFolder .yarn/cache
|
||||
yarn config set enableNetwork false
|
||||
|
||||
# Only install deps for ansible-language-server workspace
|
||||
yarn workspaces focus @ansible/ansible-language-server
|
||||
|
||||
# Build ansible-language-server (exclude tests)
|
||||
cd packages/ansible-language-server
|
||||
rm -rf test
|
||||
yarn run compile
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/node_modules/ansible-language-server
|
||||
cp -r out package.json $out/lib/node_modules/ansible-language-server/
|
||||
|
||||
# Copy node_modules (yarn berry installs them at workspace root)
|
||||
# Use -L to dereference symlinks (yarn creates symlinks for workspace packages)
|
||||
cd ../..
|
||||
cp -rL node_modules $out/lib/node_modules/ansible-language-server/
|
||||
|
||||
mkdir -p $out/lib/node_modules/ansible-language-server/bin
|
||||
cp packages/ansible-language-server/bin/ansible-language-server $out/lib/node_modules/ansible-language-server/bin/
|
||||
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${pkgs.nodejs}/bin/node $out/bin/ansible-language-server \
|
||||
--prefix PATH : ${pkgs.python3}/bin \
|
||||
--add-flags "$out/lib/node_modules/ansible-language-server/out/server/src/server.js"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/ansible/vscode-ansible/releases/tag/v${version}";
|
||||
description = "Ansible Language Server";
|
||||
mainProgram = "ansible-language-server";
|
||||
homepage = "https://github.com/ansible/vscode-ansible";
|
||||
license = licenses.mit;
|
||||
maintainers = with lib.maintainers; [ dtvillafana ];
|
||||
};
|
||||
}
|
||||
@@ -295,7 +295,6 @@ mapAliases {
|
||||
androidndkPkgs_26 = throw "androidndkPkgs_26 has been removed, as it is EOL"; # Added 2025-08-09
|
||||
anew = throw "'anew' has been removed, as it has been unmaintained upstream since March 2022"; # Added 2026-01-01
|
||||
anonymousPro = anonymous-pro-fonts; # Added 2026-02-08
|
||||
ansible-language-server = throw "ansible-language-server was removed, because it was unmaintained in nixpkgs."; # Added 2025-09-24
|
||||
ansible-later = throw "ansible-later has been discontinued. The author recommends switching to ansible-lint"; # Added 2025-08-24
|
||||
ansible_2_16 = throw "ansible_2_16 has been removed, as it is EOL"; # Added 2025-11-10
|
||||
ansible_2_17 = throw "ansible_2_17 has been removed, as it is EOL"; # Added 2025-11-10
|
||||
|
||||
@@ -5441,6 +5441,10 @@ with pkgs;
|
||||
|
||||
ansible = python3Packages.toPythonApplication python3Packages.ansible-core;
|
||||
|
||||
ansible-language-server =
|
||||
callPackage ../development/tools/language-servers/ansible-language-server
|
||||
{ };
|
||||
|
||||
ansible-builder = with python3Packages; toPythonApplication ansible-builder;
|
||||
|
||||
yakut = python3Packages.callPackage ../development/tools/misc/yakut { };
|
||||
|
||||
Reference in New Issue
Block a user