3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/applications/editors/vscode/default.nix

90 lines
3.5 KiB
Nix
Raw Normal View History

2016-10-14 18:27:46 +01:00
{ stdenv, lib, callPackage, fetchurl, unzip, atomEnv, makeDesktopItem,
makeWrapper, libXScrnSaver }:
2016-04-22 11:27:38 +01:00
2016-04-03 16:07:05 +01:00
let
2017-02-09 20:35:02 +00:00
version = "1.9.1";
rev = "f9d0c687ff2ea7aabd85fb9a43129117c0ecf519";
2017-01-16 08:51:08 +00:00
channel = "stable";
2016-04-22 12:23:24 +01:00
2017-02-06 07:29:49 +00:00
# The revision can be obtained with the following command (see https://github.com/NixOS/nixpkgs/issues/22465):
# curl -w "%{url_effective}\n" -I -L -s -S https://vscode-update.azurewebsites.net/latest/linux-x64/stable -o /dev/null
2017-02-09 20:35:02 +00:00
sha256 = if stdenv.system == "i686-linux" then "03lv792rkb1hgn1knd8kpic7q07cd194cr4fw1bimnjblrvyy586"
else if stdenv.system == "x86_64-linux" then "1vrcb4y2y83bhxx9121afwbzm8yddfin4zy3nyxfi805pjmszwjm"
else if stdenv.system == "x86_64-darwin" then "0s92ing4m2qyqdkpmkhl2zj40hcdsr5x764sb6zprwwhfv4npymr"
else throw "Unsupported system: ${stdenv.system}";
2017-01-16 08:51:08 +00:00
urlBase = "https://az764295.vo.msecnd.net/${channel}/${rev}/";
2016-09-13 06:35:16 +01:00
urlStr = if stdenv.system == "i686-linux" then
2017-02-09 20:35:02 +00:00
urlBase + "code-${channel}-code_${version}-1486596246_i386.tar.gz"
2016-09-13 06:35:16 +01:00
else if stdenv.system == "x86_64-linux" then
2017-02-09 20:35:02 +00:00
urlBase + "code-${channel}-code_${version}-1486597190_amd64.tar.gz"
2016-09-13 06:35:16 +01:00
else if stdenv.system == "x86_64-darwin" then
2017-01-16 08:51:08 +00:00
urlBase + "VSCode-darwin-${channel}.zip"
else throw "Unsupported system: ${stdenv.system}";
2016-04-03 16:07:05 +01:00
in
stdenv.mkDerivation rec {
name = "vscode-${version}";
inherit version;
2016-04-03 16:07:05 +01:00
src = fetchurl {
2016-09-13 06:35:16 +01:00
url = urlStr;
inherit sha256;
2016-04-03 16:07:05 +01:00
};
2016-04-22 11:27:38 +01:00
desktopItem = makeDesktopItem {
name = "code";
exec = "code";
icon = "code";
2017-01-16 09:03:47 +00:00
comment = "Code editor redefined and optimized for building and debugging modern web and cloud applications";
2016-04-22 11:27:38 +01:00
desktopName = "Visual Studio Code";
genericName = "Text Editor";
categories = "GNOME;GTK;Utility;TextEditor;Development;";
};
2016-09-13 06:35:16 +01:00
buildInputs = if stdenv.system == "x86_64-darwin"
2016-10-14 18:27:46 +01:00
then [ unzip makeWrapper libXScrnSaver ]
else [ makeWrapper libXScrnSaver ];
2016-04-03 16:07:05 +01:00
installPhase = ''
mkdir -p $out/lib/vscode $out/bin
cp -r ./* $out/lib/vscode
ln -s $out/lib/vscode/code $out/bin
2016-04-22 11:27:38 +01:00
mkdir -p $out/share/applications
cp $desktopItem/share/applications/* $out/share/applications
mkdir -p $out/share/pixmaps
cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
'';
2016-04-03 16:07:05 +01:00
postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:$out/lib/vscode" \
$out/lib/vscode/code
2016-10-14 18:27:46 +01:00
wrapProgram $out/bin/code \
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
2016-04-03 16:07:05 +01:00
'';
meta = with stdenv.lib; {
2016-10-14 18:27:46 +01:00
description = ''
Open source source code editor developed by Microsoft for Windows,
Linux and OS X
'';
2016-04-03 16:07:05 +01:00
longDescription = ''
2016-10-14 18:27:46 +01:00
Open source source code editor developed by Microsoft for Windows,
Linux and OS X. It includes support for debugging, embedded Git
control, syntax highlighting, intelligent code completion, snippets,
and code refactoring. It is also customizable, so users can change the
editor's theme, keyboard shortcuts, and preferences
2016-04-03 16:07:05 +01:00
'';
homepage = http://code.visualstudio.com/;
downloadPage = https://code.visualstudio.com/Updates;
license = licenses.unfree;
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
2016-04-03 16:07:05 +01:00
};
}