diff options
Diffstat (limited to 'lib/strings.nix')
-rw-r--r-- | lib/strings.nix | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/strings.nix b/lib/strings.nix index daf845839343..86af4d438344 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -156,12 +156,12 @@ rec { hasSuffix "foo" "barfoo" => true */ - hasSuffix = suff: str: + hasSuffix = suffix: content: let - lenStr = stringLength str; - lenSuff = stringLength suff; - in lenStr >= lenSuff && - substring (lenStr - lenSuff) lenStr str == suff; + lenContent = stringLength content; + lenSuffix = stringLength suffix; + in lenContent >= lenSuffix && + substring (lenContent - lenSuffix) lenContent content == suffix; /* Convert a string to a list of characters (i.e. singleton strings). This allows you to, e.g., map a function over each character. However, @@ -248,7 +248,7 @@ rec { /* Converts an ASCII string to upper-case. Example: - toLower "home" + toUpper "home" => "HOME" */ toUpper = replaceChars lowerChars upperChars; @@ -372,7 +372,12 @@ rec { getVersion pkgs.youtube-dl => "2016.01.01" */ - getVersion = x: (builtins.parseDrvName (x.name or x)).version; + getVersion = x: + let + parse = drv: (builtins.parseDrvName drv).version; + in if isString x + then parse x + else x.version or (parse x.name); /* Extract name with version from URL. Ask for separator which is supposed to start extension. |