48 lines
		
	
	
		
			812 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			812 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								/* 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));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |