diff options
author | Ryan Mulligan <ryan@ryantm.com> | 2018-03-02 20:26:32 -0800 |
---|---|---|
committer | Ryan Mulligan <ryan@ryantm.com> | 2018-03-04 06:28:34 -0800 |
commit | a9d0778cd4e0cdb92d46c73032b125c4b98dc66e (patch) | |
tree | a90809a12dea3971a99486ae8ce11e6001cc6126 /lib/versions.nix | |
parent | b84fd70d88f121de536f48c7bc08b3678fe8cabd (diff) |
lib: add versions library
Diffstat (limited to 'lib/versions.nix')
-rw-r--r-- | lib/versions.nix | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/versions.nix b/lib/versions.nix new file mode 100644 index 0000000000000..8f7f98ff5e1e1 --- /dev/null +++ b/lib/versions.nix @@ -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)); + +} |