summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorRyan Horiguchi <ryan.horiguchi@gmail.com>2021-02-17 16:52:42 +0100
committerRyan Horiguchi <ryan.horiguchi@gmail.com>2021-02-17 18:13:04 +0100
commitdcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac (patch)
tree7464a6933ac72ab19b2f4324dac739d717a3b4bb /pkgs/misc
parentada1fa0adc76dc806e3db9ee68cbd420dbe71809 (diff)
downloadnixpkgs-dcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac.tar
nixpkgs-dcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac.tar.gz
nixpkgs-dcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac.tar.bz2
nixpkgs-dcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac.tar.lz
nixpkgs-dcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac.tar.xz
nixpkgs-dcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac.tar.zst
nixpkgs-dcc609c9b1ddbdf4ff9b0bfce7c3093bc5454cac.zip
vscode-extensions.hashicorp.terraform: init at 2.6.0
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/vscode-extensions/default.nix2
-rw-r--r--pkgs/misc/vscode-extensions/terraform/default.nix25
-rw-r--r--pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch25
3 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 60048e16192..8c8e646964d 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -357,6 +357,8 @@ let
         };
       };
 
+      hashicorp.terraform = callPackage ./terraform {};
+
       hookyqr.beautify = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "beautify";
diff --git a/pkgs/misc/vscode-extensions/terraform/default.nix b/pkgs/misc/vscode-extensions/terraform/default.nix
new file mode 100644
index 00000000000..16a3c7477cd
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/terraform/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchurl, vscode-utils, terraform-ls }:
+vscode-utils.buildVscodeMarketplaceExtension rec {
+  mktplcRef = {
+    name = "terraform";
+    publisher = "hashicorp";
+    version = "2.6.0";
+  };
+
+  vsix = fetchurl {
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
+    url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/terraform-${mktplcRef.version}.vsix";
+    sha256 = "1zg90x2asl6gakd2w8fn4imllqgrzdb1dn3728s63blmml42a1xp";
+  };
+
+  patches = [ ./fix-terraform-ls.patch ];
+
+  postPatch = ''
+    substituteInPlace out/extension.js --replace TERRAFORM-LS-PATH ${terraform-ls}/bin/terraform-ls
+  '';
+
+  meta = with lib; {
+    license = licenses.mit;
+    maintainers = with maintainers; [ rhoriguchi ];
+  };
+}
diff --git a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
new file mode 100644
index 00000000000..84a626b17de
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
@@ -0,0 +1,25 @@
+diff --git a/out/extension.js b/out/extension.js
+index 1de8aab..e2b3a3e 100644
+--- a/out/extension.js
++++ b/out/extension.js
+@@ -204,19 +204,7 @@ function pathToBinary() {
+         if (!_pathToBinaryPromise) {
+             let command = vscodeUtils_1.config('terraform').get('languageServer.pathToBinary');
+             if (!command) { // Skip install/upgrade if user has set custom binary path
+-                const installDir = `${extensionPath}/lsp`;
+-                const installer = new languageServerInstaller_1.LanguageServerInstaller();
+-                try {
+-                    yield installer.install(installDir);
+-                }
+-                catch (err) {
+-                    vscode.window.showErrorMessage(err);
+-                    throw err;
+-                }
+-                finally {
+-                    yield installer.cleanupZips(installDir);
+-                }
+-                command = `${installDir}/terraform-ls`;
++                command = 'TERRAFORM-LS-PATH';
+             }
+             _pathToBinaryPromise = Promise.resolve(command);
+         }