diff options
Diffstat (limited to 'lib/versions.nix')
-rw-r--r-- | lib/versions.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/versions.nix b/lib/versions.nix new file mode 100644 index 00000000000..0e9d81ac78b --- /dev/null +++ b/lib/versions.nix @@ -0,0 +1,49 @@ +/* Version string functions. */ +{ lib }: + +rec { + + /* Break a version string into its component parts. + + Example: + splitVersion "1.2.3" + => ["1" "2" "3"] + */ + splitVersion = builtins.splitVersion or (lib.splitString "."); + + /* 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)); + +} |