Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149# Version string functions.{ lib }:
rec {
/** Break a version string into its component parts.
# Examples :::{.example} ## `splitVersion` usage example
```nix splitVersion "1.2.3" => ["1" "2" "3"] ```
::: */ splitVersion = builtins.splitVersion;
/** Get the major version string from a string.
# Inputs
`v`
: 1\. Function argument
# Examples :::{.example} ## `major` usage example
```nix major "1.2.3" => "1" ```
::: */ major = v: builtins.elemAt (splitVersion v) 0;
/** Get the minor version string from a string.
# Inputs
`v`
: 1\. Function argument
# Examples :::{.example} ## `minor` usage example
```nix minor "1.2.3" => "2" ```
::: */ minor = v: builtins.elemAt (splitVersion v) 1;
/** Get the patch version string from a string.
# Inputs
`v`
: 1\. Function argument
# Examples :::{.example} ## `patch` usage example
```nix 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.
# Inputs
`v`
: 1\. Function argument
# Examples :::{.example} ## `majorMinor` usage example
```nix majorMinor "1.2.3" => "1.2" ```
::: */ majorMinor = v: builtins.concatStringsSep "." (lib.take 2 (splitVersion v));
/** Pad a version string with zeros to match the given number of components.
# Inputs
`n`
: 1\. Function argument
`version`
: 2\. Function argument
# Examples :::{.example} ## `pad` usage example
```nix pad 3 "1.2" => "1.2.0" pad 3 "1.3-rc1" => "1.3.0-rc1" pad 3 "1.2.3.4" => "1.2.3" ```
::: */ pad = n: version: let numericVersion = lib.head (lib.splitString "-" version); versionSuffix = lib.removePrefix numericVersion version; in lib.concatStringsSep "." (lib.take n (lib.splitVersion numericVersion ++ lib.genList (_: "0") n)) + versionSuffix;
}