|
|
|
@@ -0,0 +1,47 @@ |
|
|
|
/* Version string functions. */ |
|
|
|
{ lib }: |
|
|
|
|
|
|
|
let |
|
|
|
|
|
|
|
splitVersion = builtins.splitVersion or (lib.splitString "."); |
|
|
|
|
|
|
|
in |
|
|
|
|
|
|
|
rec { |
|
|
|
|
|
|
|
/* Get the major version string from a string. |
|
|
|
|
|
|
|
Example: |
|
|
|
major "1.2.3" |
|
|
|
=> "1" |
|
|
|
*/ |
|
|
|
major = v: builtins.elemAt (splitVersion v) 0; |
|
|
|
|
|
|
|
/* Get the minor version string from a string. |
|
|
|
|
|
|
|
Example: |
|
|
|
minor "1.2.3" |
|
|
|
=> "2" |
|
|
|
*/ |
|
|
|
minor = v: builtins.elemAt (splitVersion v) 1; |
|
|
|
|
|
|
|
/* Get the patch version string from a string. |
|
|
|
|
|
|
|
Example: |
|
|
|
patch "1.2.3" |
|
|
|
=> "3" |
|
|
|
*/ |
|
|
|
patch = v: builtins.elemAt (splitVersion v) 2; |
|
|
|
|
|
|
|
/* Get string of the first two parts (major and minor) |
|
|
|
of a version string. |
|
|
|
|
|
|
|
Example: |
|
|
|
majorMinor "1.2.3" |
|
|
|
=> "1.2" |
|
|
|
*/ |
|
|
|
majorMinor = v: |
|
|
|
builtins.concatStringsSep "." |
|
|
|
(lib.take 2 (splitVersion v)); |
|
|
|
|
|
|
|
} |