summary refs log blame commit diff
path: root/lib/versions.nix
blob: 2c05445b3dd077a54d49d6a51503609402394ca9 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                
 




































                                                        
/* Version string functions. */
{ lib }:

let

  splitVersion = builtins.splitVersion or (lib.splitString ".");

in

{

  /* 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));

}