From 4a08528b4aad94332006ad4c190c3f2fa207d630 Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Thu, 6 Apr 2017 22:18:18 -0400 Subject: [PATCH] vscode: Revamp URL generation scheme 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 --- pkgs/applications/editors/vscode/default.nix | 34 ++++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix index bdd8bd441678..a2854208a493 100644 --- a/pkgs/applications/editors/vscode/default.nix +++ b/pkgs/applications/editors/vscode/default.nix @@ -3,37 +3,29 @@ let version = "1.11.1"; - rev = "d9484d12b38879b7f4cdd1150efeb2fd2c1fbf39"; channel = "stable"; - # The revision and build timestamps can be obtained with the following - # command (see https://github.com/NixOS/nixpkgs/issues/22465): - # for a in x64 ia32; do - # curl -w "%{url_effective}\n" -I -L -s -S -o /dev/null \ - # "https://vscode-update.azurewebsites.net/latest/linux-${arch}/stable" \ - # done + plat = { + "i686-linux" = "linux-ia32"; + "x86_64-linux" = "linux-x64"; + "x86_64-darwin" = "darwin"; + }.${stdenv.system}; - sha256 = if stdenv.system == "i686-linux" then "14wdblh7q3m5qdsm34dpg5p7qk6llrbqk60md8wd0fb4chpvrq94" - else if stdenv.system == "x86_64-linux" then "0rmzvaiar3y062mbrggiwjbwxs7izcih5333rn208ax4jxmbk4pc" - else if stdenv.system == "x86_64-darwin" then "1f3zdwsz0l6r7c2k25a7j5m0dl78219jzg4axcmbfa2qcs2hw0x6" - else throw "Unsupported system: ${stdenv.system}"; + sha256 = { + "i686-linux" = "14wdblh7q3m5qdsm34dpg5p7qk6llrbqk60md8wd0fb4chpvrq94"; + "x86_64-linux" = "0rmzvaiar3y062mbrggiwjbwxs7izcih5333rn208ax4jxmbk4pc"; + "x86_64-darwin" = "1f3zdwsz0l6r7c2k25a7j5m0dl78219jzg4axcmbfa2qcs2hw0x6"; + }.${stdenv.system}; - urlBase = "https://az764295.vo.msecnd.net/${channel}/${rev}/"; + archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz"; - urlStr = if stdenv.system == "i686-linux" then - urlBase + "code-${channel}-code_${version}-1491487843_i386.tar.gz" - else if stdenv.system == "x86_64-linux" then - urlBase + "code-${channel}-code_${version}-1491486998_amd64.tar.gz" - else if stdenv.system == "x86_64-darwin" then - urlBase + "VSCode-darwin-${channel}.zip" - else throw "Unsupported system: ${stdenv.system}"; in stdenv.mkDerivation rec { name = "vscode-${version}"; - inherit version; src = fetchurl { - url = urlStr; + name = "VSCode_${version}_${plat}.${archive_fmt}"; + url = "https://vscode-update.azurewebsites.net/${version}/${plat}/${channel}"; inherit sha256; };