about summary refs log tree commit diff
path: root/pkgs/desktops/kde-4.5/l10n/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/kde-4.5/l10n/default.nix')
-rw-r--r--pkgs/desktops/kde-4.5/l10n/default.nix51
1 files changed, 29 insertions, 22 deletions
diff --git a/pkgs/desktops/kde-4.5/l10n/default.nix b/pkgs/desktops/kde-4.5/l10n/default.nix
index b29df0f59378..18b234b28bc3 100644
--- a/pkgs/desktops/kde-4.5/l10n/default.nix
+++ b/pkgs/desktops/kde-4.5/l10n/default.nix
@@ -3,18 +3,24 @@
 let
   overrides = { };
 
-  defaultVersion = "4.5.1";
+  defaultRelease = "4.5.2";
+  releases = [ "4.5.1" "4.5.2" ];
 
-  getOverride = name: stdenv.lib.attrByPath [name] {} overrides;
+  sanitizeString = replaceChars [ "@" "." ] [ "_" "_" ];
+  getOverride = name: attrByPath [name] {} overrides;
 
-  kdeL10nDerivation = {lang, sha256, version} :
+  inherit (stdenv.lib) replaceChars attrByPath singleton;
+
+  kdeL10nDerivation = {lang, sha256, release} :
     let
-      name = "kde-l10n-${lang}-${version}";
+      name = "kde-l10n-${lang}-${release}";
+      saneName = "kde-l10n-${sanitizeString lang}-${release}";
     in
     stdenv.mkDerivation ({
-      inherit name;
+      name = saneName;
       src = fetchurl {
-        url = "mirror://kde/stable/${version}/src/kde-l10n/${name}.tar.bz2";
+        url = "mirror://kde/stable/${release}/src/kde-l10n/${name}.tar.bz2";
+        name = "${saneName}.tar.bz2";
         inherit sha256;
       };
 
@@ -28,24 +34,25 @@ let
     }
     // (getOverride lang) // (getOverride name)
   );
+
+  kdeL10nRelease = release:
+    let
+      releaseStr = sanitizeString release;
+    in
+    builtins.listToAttrs (
+      map ({lang, sha256}:
+        {
+          name = "${sanitizeString lang}";
+          value = kdeL10nDerivation { inherit lang release sha256;};
+        }
+      ) (import (./manifest + "-${release}.nix"))
+    );
+
 in
 {
   inherit kdeL10nDerivation;
   recurseForDerivations = true;
 }
-// (builtins.listToAttrs (
-  map (a@{lang, version, sha256} :
-      {
-        name = stdenv.lib.replaceChars ["." "@"] ["_" "_"] "${lang}_${version}";
-        value = kdeL10nDerivation a;
-      }
-    ) (import ./manifest.nix)
-))
-// (builtins.listToAttrs (
-  map (a@{lang, version, sha256} :
-      {
-        name = stdenv.lib.replaceChars ["." "@"] ["_" "_"] "${lang}";
-        value = kdeL10nDerivation a;
-      }
-    ) (stdenv.lib.filter (x : x.version == defaultVersion) (import ./manifest.nix))
-))
+// builtins.listToAttrs (map (r : { name = sanitizeString r; value =
+kdeL10nRelease r; }) releases)
+// (kdeL10nRelease defaultRelease)