about summary refs log tree commit diff
path: root/pkgs/data/fonts/iosevka/bin.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/data/fonts/iosevka/bin.nix')
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix37
1 files changed, 27 insertions, 10 deletions
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index 0f88aa05e4cf0..c3e77c1051fb5 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -1,20 +1,35 @@
-{ stdenv, fetchzip }:
+{ stdenv, lib, fetchurl, unzip
+, variant ? ""
+}:
 
 let
-  version = "3.4.6";
-in fetchzip {
-  name = "iosevka-bin-${version}";
+  name = "iosevka" + lib.optionalString (variant != "") "-" + variant;
 
-  url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-iosevka-${version}.zip";
+  variantHashes = import ./variants.nix;
+  validVariants = map (lib.removePrefix "iosevka-")
+    (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
+in stdenv.mkDerivation rec {
+  pname = "${name}-bin";
+  version = "3.7.1";
 
-  postFetch = ''
+  src = fetchurl {
+    url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
+    sha256 = variantHashes.${name} or (throw ''
+      No such variant "${variant}" for package iosevka-bin.
+      Valid variants are: ${lib.concatStringsSep ", " validVariants}.
+    '');
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  phases = [ "unpackPhase" ];
+
+  unpackPhase = ''
     mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/truetype
+    unzip -d $out/share/fonts/truetype $src
   '';
 
-  sha256 = "1nab49gkpxahwvvw39xcc32q425qkccr7ffmz87jbcdv71qy7pp9";
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://be5invis.github.io/Iosevka/";
     downloadPage = "https://github.com/be5invis/Iosevka/releases";
     description = ''
@@ -25,4 +40,6 @@ in fetchzip {
     platforms = platforms.all;
     maintainers = [ maintainers.cstrahan ];
   };
+
+  passthru.updateScript = ./update.sh;
 }