mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-30 23:10:31 +00:00 
			
		
		
		
	Convert checkout to a regular action (#70)
This commit is contained in:
		
							
								
								
									
										77
									
								
								src/git-version.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								src/git-version.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| export class GitVersion { | ||||
|   private readonly major: number = NaN | ||||
|   private readonly minor: number = NaN | ||||
|   private readonly patch: number = NaN | ||||
|  | ||||
|   /** | ||||
|    * Used for comparing the version of git and git-lfs against the minimum required version | ||||
|    * @param version the version string, e.g. 1.2 or 1.2.3 | ||||
|    */ | ||||
|   constructor(version?: string) { | ||||
|     if (version) { | ||||
|       const match = version.match(/^(\d+)\.(\d+)(\.(\d+))?$/) | ||||
|       if (match) { | ||||
|         this.major = Number(match[1]) | ||||
|         this.minor = Number(match[2]) | ||||
|         if (match[4]) { | ||||
|           this.patch = Number(match[4]) | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * Compares the instance against a minimum required version | ||||
|    * @param minimum Minimum version | ||||
|    */ | ||||
|   checkMinimum(minimum: GitVersion): boolean { | ||||
|     if (!minimum.isValid()) { | ||||
|       throw new Error('Arg minimum is not a valid version') | ||||
|     } | ||||
|  | ||||
|     // Major is insufficient | ||||
|     if (this.major < minimum.major) { | ||||
|       return false | ||||
|     } | ||||
|  | ||||
|     // Major is equal | ||||
|     if (this.major === minimum.major) { | ||||
|       // Minor is insufficient | ||||
|       if (this.minor < minimum.minor) { | ||||
|         return false | ||||
|       } | ||||
|  | ||||
|       // Minor is equal | ||||
|       if (this.minor === minimum.minor) { | ||||
|         // Patch is insufficient | ||||
|         if (this.patch && this.patch < (minimum.patch || 0)) { | ||||
|           return false | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     return true | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * Indicates whether the instance was constructed from a valid version string | ||||
|    */ | ||||
|   isValid(): boolean { | ||||
|     return !isNaN(this.major) | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * Returns the version as a string, e.g. 1.2 or 1.2.3 | ||||
|    */ | ||||
|   toString(): string { | ||||
|     let result = '' | ||||
|     if (this.isValid()) { | ||||
|       result = `${this.major}.${this.minor}` | ||||
|       if (!isNaN(this.patch)) { | ||||
|         result += `.${this.patch}` | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     return result | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 eric sciple
					eric sciple