summary refs log tree commit diff
path: root/pkgs/os-specific/linux/tp_smapi
diff options
context:
space:
mode:
authorRok Garbas <rok@garbas.si>2016-12-10 04:37:37 +0100
committerRok Garbas <rok@garbas.si>2016-12-18 16:45:33 +0100
commitb7cfbf96d612d4e2efb2aef431c143ee30b40b67 (patch)
treec55f13d9a09d876e5f2a334243f896bb1435969c /pkgs/os-specific/linux/tp_smapi
parent3f206e34f252c702c8aa29f8baf51852d845c46d (diff)
downloadnixlib-b7cfbf96d612d4e2efb2aef431c143ee30b40b67.tar
nixlib-b7cfbf96d612d4e2efb2aef431c143ee30b40b67.tar.gz
nixlib-b7cfbf96d612d4e2efb2aef431c143ee30b40b67.tar.bz2
nixlib-b7cfbf96d612d4e2efb2aef431c143ee30b40b67.tar.lz
nixlib-b7cfbf96d612d4e2efb2aef431c143ee30b40b67.tar.xz
nixlib-b7cfbf96d612d4e2efb2aef431c143ee30b40b67.tar.zst
nixlib-b7cfbf96d612d4e2efb2aef431c143ee30b40b67.zip
tp_smapi: updateScript added
Diffstat (limited to 'pkgs/os-specific/linux/tp_smapi')
-rw-r--r--pkgs/os-specific/linux/tp_smapi/default.nix19
-rw-r--r--pkgs/os-specific/linux/tp_smapi/update.json5
-rw-r--r--pkgs/os-specific/linux/tp_smapi/update.nix23
3 files changed, 39 insertions, 8 deletions
diff --git a/pkgs/os-specific/linux/tp_smapi/default.nix b/pkgs/os-specific/linux/tp_smapi/default.nix
index f0f25f14e496..272b1368dec4 100644
--- a/pkgs/os-specific/linux/tp_smapi/default.nix
+++ b/pkgs/os-specific/linux/tp_smapi/default.nix
@@ -1,13 +1,12 @@
-{stdenv, fetchurl, kernel}:
+{ stdenv, fetchurl, kernel, writeScript, coreutils, gnugrep, jq, curl
+}:
 
-stdenv.mkDerivation rec {
-  version = "0.42";
-  name = "tp_smapi-${version}-${kernel.version}";
+let
+  data = stdenv.lib.importJSON ./update.json;
+in stdenv.mkDerivation rec {
+  name = "tp_smapi-${data.version}-${kernel.version}";
 
-  src = fetchurl {
-    url = "https://github.com/evgeni/tp_smapi/releases/download/tp-smapi%2F0.42/tp_smapi-${version}.tgz";
-    sha256 = "09rdg7fm423x6sbbw3lvnvmk4nyc33az8ar93xgq0n9qii49z3bv";
-  };
+  src = fetchurl  { inherit (data) url sha256; };
 
   hardeningDisable = [ "pic" ];
 
@@ -25,6 +24,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = import ./update.nix {
+    inherit writeScript coreutils gnugrep jq curl;
+  };
+
   meta = {
     description = "IBM ThinkPad hardware functions driver";
     homepage = "https://github.com/evgeni/tp_smapi/tree/tp-smapi/0.41";
diff --git a/pkgs/os-specific/linux/tp_smapi/update.json b/pkgs/os-specific/linux/tp_smapi/update.json
new file mode 100644
index 000000000000..15e9801e7f25
--- /dev/null
+++ b/pkgs/os-specific/linux/tp_smapi/update.json
@@ -0,0 +1,5 @@
+{
+  "version": "0.42",
+  "url": "https://github.com/evgeni/tp_smapi/archive/tp-smapi/0.42.tar.gz",
+  "sha256": "cd28bf6ee21b2c27b88d947cb0bfcb19648c7daa5d350115403dbcad05849381"
+}
diff --git a/pkgs/os-specific/linux/tp_smapi/update.nix b/pkgs/os-specific/linux/tp_smapi/update.nix
new file mode 100644
index 000000000000..0c97d18472cd
--- /dev/null
+++ b/pkgs/os-specific/linux/tp_smapi/update.nix
@@ -0,0 +1,23 @@
+{ writeScript, coreutils, gnugrep, jq, curl
+}:
+
+writeScript "update-tp_smapi" ''
+PATH=${coreutils}/bin:${gnugrep}/bin:${jq}/bin:${curl}/bin
+
+pushd pkgs/os-specific/linux/tp_smapi
+
+tmpfile=`mktemp`
+tags=`curl -s https://api.github.com/repos/evgeni/tp_smapi/tags`
+latest_tag=`echo $tags | jq -r '.[] | .name' | grep -oP "^tp-smapi/\K.*" | sort --version-sort | tail -1`
+sha256=`curl -sL "https://github.com/evgeni/tp_smapi/archive/tp-smapi/$latest_tag.tar.gz" | sha256sum | cut -d" " -f1`
+
+cat > update.json <<EOF
+{
+  "version": "$latest_tag",
+  "url": "https://github.com/evgeni/tp_smapi/archive/tp-smapi/$latest_tag.tar.gz",
+  "sha256": "$sha256"
+}
+EOF
+
+popd
+''