diff --git a/pkgs/applications/editors/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix index 937764f0ab8..8f304524dff 100644 --- a/pkgs/applications/editors/sublime/3/common.nix +++ b/pkgs/applications/editors/sublime/3/common.nix @@ -1,8 +1,9 @@ -{buildVersion, x32sha256, x64sha256}: +{buildVersion, x32sha256, x64sha256, dev ? false}: { fetchurl, stdenv, glib, xorg, cairo, gtk2, gtk3, pango, makeWrapper, wrapGAppsHook, openssl, bzip2, runtimeShell, pkexecPath ? "/run/wrappers/bin/pkexec", libredirect, - gksuSupport ? false, gksu, unzip, zip, bash}: + gksuSupport ? false, gksu, unzip, zip, bash, + writeScript, common-updater-scripts, curl, gnugrep}: assert gksuSupport -> gksu != null; @@ -26,7 +27,7 @@ in let # package with just the binaries sublime = stdenv.mkDerivation { - name = "sublimetext3-${buildVersion}-bin"; + name = "sublimetext3-bin-${buildVersion}"; src = fetchurl { name = "sublimetext-${buildVersion}.tar.bz2"; @@ -127,6 +128,22 @@ in stdenv.mkDerivation (rec { ln -s $sublime/Icon/256x256/ $out/share/icons ''; + passthru.updateScript = writeScript "sublime3-update-script" '' + #!${stdenv.shell} + set -o errexit + PATH=${stdenv.lib.makeBinPath [ common-updater-scripts curl gnugrep ]} + + latestVersion=$(curl https://www.sublimetext.com/3${stdenv.lib.optionalString dev "dev"} | grep -Po '(?<=
Version: Build )([0-9]+)')
+
+ for platform in ${stdenv.lib.concatStringsSep " " meta.platforms}; do
+ package=sublime3${stdenv.lib.optionalString dev "-dev"}
+ # The script will not perform an update when the version attribute is up to date from previous platform run
+ # We need to clear it before each run
+ update-source-version ''${package}.sublime 0 0000000000000000000000000000000000000000000000000000000000000000 --file=pkgs/applications/editors/sublime/3/packages.nix --version-key=buildVersion --system=$platform
+ update-source-version ''${package}.sublime $latestVersion --file=pkgs/applications/editors/sublime/3/packages.nix --version-key=buildVersion --system=$platform
+ done
+ '';
+
meta = with stdenv.lib; {
description = "Sophisticated text editor for code, markup and prose";
homepage = https://www.sublimetext.com/;
diff --git a/pkgs/applications/editors/sublime/3/packages.nix b/pkgs/applications/editors/sublime/3/packages.nix
index 2d214f18e9f..6d4b511e598 100644
--- a/pkgs/applications/editors/sublime/3/packages.nix
+++ b/pkgs/applications/editors/sublime/3/packages.nix
@@ -6,6 +6,7 @@ in
rec {
sublime3-dev = common {
buildVersion = "3184";
+ dev = true;
x32sha256 = "1b6f1fid75g5z247dbnyyj276lrlv99scrdk1vvfcr6vyws77vzr";
x64sha256 = "03127jhfjr17ai96p3axh5b5940fds8jcw6vkid8y6dmvd2dpylz";
} {};
diff --git a/pkgs/applications/networking/browsers/firefox/update.nix b/pkgs/applications/networking/browsers/firefox/update.nix
index b03720f988a..0ead6de123a 100644
--- a/pkgs/applications/networking/browsers/firefox/update.nix
+++ b/pkgs/applications/networking/browsers/firefox/update.nix
@@ -32,5 +32,5 @@ writeScript "update-${attrPath}" ''
sort --version-sort | \
tail -n 1`
- update-source-version ${attrPath} "$version" "" "" ${versionKey}
+ update-source-version ${attrPath} "$version" "" "" --version-key=${versionKey}
''
diff --git a/pkgs/common-updater/scripts.nix b/pkgs/common-updater/scripts.nix
index b260c67ca7c..8a122b74b23 100644
--- a/pkgs/common-updater/scripts.nix
+++ b/pkgs/common-updater/scripts.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, coreutils, gawk, gnused, diffutils, nix }:
+{ stdenv, makeWrapper, coreutils, gawk, gnused, gnugrep, diffutils, nix }:
stdenv.mkDerivation {
name = "common-updater-scripts";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
cp ${./scripts}/* $out/bin
for f in $out/bin/*; do
- wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gawk gnused nix diffutils ]}
+ wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gawk gnused gnugrep nix diffutils ]}
done
'';
}
diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version
index 117e8724cd8..a66ffb750f6 100755
--- a/pkgs/common-updater/scripts/update-source-version
+++ b/pkgs/common-updater/scripts/update-source-version
@@ -1,29 +1,79 @@
#!/usr/bin/env bash
set -e
+scriptName=update-source-versions # do not use the .wrapped name
+
die() {
- echo "$0: error: $1" >&2
+ echo "$scriptName: error: $1" >&2
exit 1
}
-# Usage: update-source-hash