4a08528b4a
This ought to be way easier to maintain! Now just the version number and sha256 hashes need to be updated for an update, and there are no more manual cmdline steps to get version hashes and timestamps. Related to #22465
87 lines
3.1 KiB
Nix
87 lines
3.1 KiB
Nix
{ stdenv, lib, callPackage, fetchurl, unzip, atomEnv, makeDesktopItem,
|
|
makeWrapper, libXScrnSaver }:
|
|
|
|
let
|
|
version = "1.11.1";
|
|
channel = "stable";
|
|
|
|
plat = {
|
|
"i686-linux" = "linux-ia32";
|
|
"x86_64-linux" = "linux-x64";
|
|
"x86_64-darwin" = "darwin";
|
|
}.${stdenv.system};
|
|
|
|
sha256 = {
|
|
"i686-linux" = "14wdblh7q3m5qdsm34dpg5p7qk6llrbqk60md8wd0fb4chpvrq94";
|
|
"x86_64-linux" = "0rmzvaiar3y062mbrggiwjbwxs7izcih5333rn208ax4jxmbk4pc";
|
|
"x86_64-darwin" = "1f3zdwsz0l6r7c2k25a7j5m0dl78219jzg4axcmbfa2qcs2hw0x6";
|
|
}.${stdenv.system};
|
|
|
|
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";
|
|
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
name = "vscode-${version}";
|
|
|
|
src = fetchurl {
|
|
name = "VSCode_${version}_${plat}.${archive_fmt}";
|
|
url = "https://vscode-update.azurewebsites.net/${version}/${plat}/${channel}";
|
|
inherit sha256;
|
|
};
|
|
|
|
desktopItem = makeDesktopItem {
|
|
name = "code";
|
|
exec = "code";
|
|
icon = "code";
|
|
comment = "Code editor redefined and optimized for building and debugging modern web and cloud applications";
|
|
desktopName = "Visual Studio Code";
|
|
genericName = "Text Editor";
|
|
categories = "GNOME;GTK;Utility;TextEditor;Development;";
|
|
};
|
|
|
|
buildInputs = if stdenv.system == "x86_64-darwin"
|
|
then [ unzip makeWrapper libXScrnSaver ]
|
|
else [ makeWrapper libXScrnSaver ];
|
|
|
|
installPhase =
|
|
if stdenv.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
|
|
'' else ''
|
|
mkdir -p $out/lib/vscode $out/bin
|
|
cp -r ./* $out/lib/vscode
|
|
ln -s $out/lib/vscode/bin/code $out/bin
|
|
|
|
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
|
|
'';
|
|
|
|
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}:${stdenv.lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1:$out/lib/vscode" \
|
|
$out/lib/vscode/code
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = ''
|
|
Open source source code editor developed by Microsoft for Windows,
|
|
Linux and OS X
|
|
'';
|
|
longDescription = ''
|
|
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
|
|
'';
|
|
homepage = http://code.visualstudio.com/;
|
|
downloadPage = https://code.visualstudio.com/Updates;
|
|
license = licenses.unfree;
|
|
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
|
|
};
|
|
}
|