summaryrefslogtreecommitdiffstats
path: root/old/lib/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'old/lib/default.nix')
-rw-r--r--old/lib/default.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/old/lib/default.nix b/old/lib/default.nix
new file mode 100644
index 00000000..164a6a1a
--- /dev/null
+++ b/old/lib/default.nix
@@ -0,0 +1,62 @@
+{ lib, pkgs, ... }:
+
+with builtins;
+
+let
+ inherit (lib) mapAttrs stringAsChars;
+in
+
+rec {
+ git = import ./git.nix {
+ lib = lib // {
+ inherit addNames;
+ };
+ inherit pkgs;
+ };
+
+ addName = name: set:
+ set // { inherit name; };
+
+ addNames = mapAttrs addName;
+
+
+ # "7.4.335" -> "74"
+ majmin = with lib; x : concatStrings (take 2 (splitString "." x));
+
+
+ concat = xs :
+ if xs == []
+ then ""
+ else head xs + concat (tail xs)
+ ;
+
+ flip = f : x : y : f y x;
+
+ # isSuffixOf :: String -> String -> Bool
+ isSuffixOf =
+ s : xs :
+ let
+ sn = stringLength s;
+ xsn = stringLength xs;
+ in
+ xsn >= sn && substring (xsn - sn) sn xs == s ;
+
+ removeSuffix =
+ s : xs : substring 0 (stringLength xs - stringLength s) xs;
+
+ # setMap :: (String -> a -> b) -> Set String a -> [b]
+ #setMap = f: xs: map (k : f k (getAttr k xs)) (attrNames xs);
+
+ # setToList :: Set k a -> [a]
+ #setToList = setMap (_: v: v);
+
+ shell-escape =
+ let
+ isSafeChar = c: match "[-./0-9_a-zA-Z]" c != null;
+ in
+ stringAsChars (c:
+ if isSafeChar c then c
+ else if c == "\n" then "'\n'"
+ else "\\${c}");
+
+}