46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   buildNpmPackage,
 | |
|   fetchFromGitHub,
 | |
|   nix-update-script,
 | |
| }:
 | |
| 
 | |
| buildNpmPackage rec {
 | |
|   pname = "ansible-language-server";
 | |
|   version = "1.2.1";
 | |
| 
 | |
|   src = fetchFromGitHub {
 | |
|     owner = "ansible";
 | |
|     repo = "ansible-language-server";
 | |
|     tag = "v${version}";
 | |
|     hash = "sha256-e6cOWoryOxWnl8q62rlGmSgwLVnoxLMwNFoGlUZw2bQ=";
 | |
|   };
 | |
| 
 | |
|   npmDepsHash = "sha256-Lzwj0/2fxa44DJBsgDPa43AbRxggqh881X/DFnlNLig=";
 | |
|   npmBuildScript = "compile";
 | |
| 
 | |
|   # We remove/ignore the prepare and prepack scripts because they run the
 | |
|   # build script, and therefore are redundant.
 | |
|   #
 | |
|   # Additionally, the prepack script runs npm ci in addition to the
 | |
|   # build script. Directly before npm pack is run, we make npm unaware
 | |
|   # of the dependency cache, causing the npm ci invocation to fail,
 | |
|   # wiping out node_modules, which causes a mysterious error stating that tsc isn't installed.
 | |
|   postPatch = ''
 | |
|     sed -i '/"prepare"/d' package.json
 | |
|     sed -i '/"prepack"/d' package.json
 | |
|   '';
 | |
| 
 | |
|   npmPackFlags = [ "--ignore-scripts" ];
 | |
|   passthru.updateScript = nix-update-script { };
 | |
| 
 | |
|   meta = {
 | |
|     changelog = "https://github.com/ansible/ansible-language-server/releases/tag/v${version}";
 | |
|     description = "Ansible Language Server";
 | |
|     mainProgram = "ansible-language-server";
 | |
|     homepage = "https://github.com/ansible/ansible-language-server";
 | |
|     license = lib.licenses.mit;
 | |
|     maintainers = with lib.maintainers; [ hexa ];
 | |
|   };
 | |
| }
 | 
