summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdmund Wu <fangkazuto@gmail.com>2018-11-03 21:29:00 -0400
committerworldofpeace <worldofpeace@users.noreply.github.com>2018-12-14 07:57:39 -0500
commit899933277851275592e80b1d869923c2e929b92d (patch)
tree6fe42866855e2d0625494b6b903bc31e2a18a932
parentvscode: 1.29.0 -> 1.29.1 (#50462) (diff)
downloadnixpkgs-899933277851275592e80b1d869923c2e929b92d.tar.gz
vscode,vscode-extensions: fix insiders build
(cherry picked from commit d41e868e02b10ab4e9693f06a7c7f202edadd3b1)
-rw-r--r--pkgs/applications/editors/vscode/default.nix32
-rw-r--r--pkgs/applications/editors/vscode/with-extensions.nix27
2 files changed, 26 insertions, 33 deletions
diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix
index b5cb6f6e3e14..2a6926a87087 100644
--- a/pkgs/applications/editors/vscode/default.nix
+++ b/pkgs/applications/editors/vscode/default.nix
@@ -1,9 +1,9 @@
{ stdenv, lib, fetchurl, unzip, atomEnv, makeDesktopItem,
- gtk2, wrapGAppsHook, libXScrnSaver, libxkbfile, libsecret }:
+ gtk2, wrapGAppsHook, libXScrnSaver, libxkbfile, libsecret,
+ isInsiders ? false }:
let
- version = "1.29.1";
- channel = "stable";
+ executableName = "code" + lib.optionalString isInsiders "-insiders";
plat = {
"i686-linux" = "linux-ia32";
@@ -31,19 +31,24 @@ let
in
stdenv.mkDerivation rec {
name = "vscode-${version}";
+ version = "1.29.1";
src = fetchurl {
name = "VSCode_${version}_${plat}.${archive_fmt}";
- url = "https://vscode-update.azurewebsites.net/${version}/${plat}/${channel}";
+ url = "https://vscode-update.azurewebsites.net/${version}/${plat}/stable";
inherit sha256;
};
+ passthru = {
+ inherit executableName;
+ };
+
desktopItem = makeDesktopItem {
- name = "code";
- exec = "code";
- icon = "code";
+ name = executableName;
+ exec = executableName;
+ icon = "@out@/share/pixmaps/code.png";
comment = "Code editor redefined and optimized for building and debugging modern web and cloud applications";
- desktopName = "Visual Studio Code";
+ desktopName = "Visual Studio Code" + lib.optionalString isInsiders " Insiders";
genericName = "Text Editor";
categories = "GNOME;GTK;Utility;TextEditor;Development;";
};
@@ -56,17 +61,18 @@ in
if stdenv.hostPlatform.system == "x86_64-darwin" then ''
mkdir -p $out/lib/vscode $out/bin
cp -r ./* $out/lib/vscode
- ln -s $out/lib/vscode/Contents/Resources/app/bin/code $out/bin
+ ln -s $out/lib/vscode/Contents/Resources/app/bin/${executableName} $out/bin
'' else ''
mkdir -p $out/lib/vscode $out/bin
cp -r ./* $out/lib/vscode
- substituteInPlace $out/lib/vscode/bin/code --replace '"$CLI" "$@"' '"$CLI" "--skip-getting-started" "$@"'
+ substituteInPlace $out/lib/vscode/bin/${executableName} --replace '"$CLI" "$@"' '"$CLI" "--skip-getting-started" "$@"'
- ln -s $out/lib/vscode/bin/code $out/bin
+ ln -s $out/lib/vscode/bin/${executableName} $out/bin
mkdir -p $out/share/applications
- cp $desktopItem/share/applications/* $out/share/applications
+ substitute $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop \
+ --subst-var out
mkdir -p $out/share/pixmaps
cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
@@ -76,7 +82,7 @@ in
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" \
- $out/lib/vscode/code
+ $out/lib/vscode/${executableName}
patchelf \
--set-rpath "${rpath}" \
diff --git a/pkgs/applications/editors/vscode/with-extensions.nix b/pkgs/applications/editors/vscode/with-extensions.nix
index 5535d9ab1128..0af96e8bea81 100644
--- a/pkgs/applications/editors/vscode/with-extensions.nix
+++ b/pkgs/applications/editors/vscode/with-extensions.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, runCommand, buildEnv, vscode, which, writeScript
+{ stdenv, lib, runCommand, buildEnv, vscode, makeWrapper
, vscodeExtensions ? [] }:
/*
@@ -43,6 +43,7 @@
let
+ inherit (vscode) executableName;
wrappedPkgVersion = lib.getVersion vscode;
wrappedPkgName = lib.removeSuffix "-${wrappedPkgVersion}" vscode.name;
@@ -51,22 +52,12 @@ let
paths = vscodeExtensions;
};
- wrappedExeName = "code";
- exeName = wrappedExeName;
-
- wrapperExeFile = writeScript "${exeName}" ''
- #!${stdenv.shell}
- exec ${vscode}/bin/${wrappedExeName} \
- --extensions-dir "${combinedExtensionsDrv}/share/${wrappedPkgName}/extensions" \
- "$@"
- '';
-
in
# When no extensions are requested, we simply redirect to the original
# non-wrapped vscode executable.
runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
- buildInputs = [ vscode which ];
+ buildInputs = [ vscode makeWrapper ];
dontPatchELF = true;
dontStrip = true;
meta = vscode.meta;
@@ -75,13 +66,9 @@ runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
mkdir -p "$out/share/applications"
mkdir -p "$out/share/pixmaps"
- ln -sT "${vscode}/share/applications/code.desktop" "$out/share/applications/code.desktop"
ln -sT "${vscode}/share/pixmaps/code.png" "$out/share/pixmaps/code.png"
- ${if [] == vscodeExtensions
- then ''
- ln -sT "${vscode}/bin/${wrappedExeName}" "$out/bin/${exeName}"
- ''
- else ''
- ln -sT "${wrapperExeFile}" "$out/bin/${exeName}"
- ''}
+ ln -sT "${vscode}/share/applications/${executableName}.desktop" "$out/share/applications/${executableName}.desktop"
+ makeWrapper "${vscode}/bin/${executableName}" "$out/bin/${executableName}" \
+ --add-flags \
+ "--extensions-dir ${combinedExtensionsDrv}/share/${wrappedPkgName}/extensions"
''