summary refs log tree commit diff
path: root/pkgs/applications/editors/sublime
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-03-02 22:39:27 +0100
committerJan Tojnar <jtojnar@gmail.com>2019-03-02 23:03:04 +0100
commita5cdac3d7c35454c3db52bcf03e250a95436b536 (patch)
tree8c9050488134abf712999fcdd0777d82740cad6d /pkgs/applications/editors/sublime
parent01050586980a81e525428eb9e571a8b040f96b26 (diff)
downloadnixpkgs-a5cdac3d7c35454c3db52bcf03e250a95436b536.tar
nixpkgs-a5cdac3d7c35454c3db52bcf03e250a95436b536.tar.gz
nixpkgs-a5cdac3d7c35454c3db52bcf03e250a95436b536.tar.bz2
nixpkgs-a5cdac3d7c35454c3db52bcf03e250a95436b536.tar.lz
nixpkgs-a5cdac3d7c35454c3db52bcf03e250a95436b536.tar.xz
nixpkgs-a5cdac3d7c35454c3db52bcf03e250a95436b536.tar.zst
nixpkgs-a5cdac3d7c35454c3db52bcf03e250a95436b536.zip
sublime3: Add updateScript
Diffstat (limited to 'pkgs/applications/editors/sublime')
-rw-r--r--pkgs/applications/editors/sublime/3/common.nix23
-rw-r--r--pkgs/applications/editors/sublime/3/packages.nix1
2 files changed, 21 insertions, 3 deletions
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 '(?<=<p class="latest"><i>Version:</i> 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";
     } {};