feat: repo health check (#16) #17
| 
						 | 
					@ -37,33 +37,20 @@ func checkFileChecksum(rootDir, fileName, expectedChecksum string) (bool, string
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if actualChecksum == expectedChecksum {
 | 
						if actualChecksum == expectedChecksum {
 | 
				
			||||||
		return true, "" // fmt.Sprintf("Checksum for %s passed!", filePath)
 | 
							return true, ""
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		return false, fmt.Sprintf("Checksum for %s failed. Expected %s, but got %s. Please revert your changes or contact the teaching team if you have a valid reason for adjusting them.", filePath, expectedChecksum, actualChecksum)
 | 
							return false, fmt.Sprintf("Checksum for %s failed. Expected %s, but got %s. Please revert your changes or contact the teaching team if you have a valid reason for adjusting them.", filePath, expectedChecksum, actualChecksum)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func VerifyFiles(rootDir string, checkFileNameList string, checkFileSumList string) error {
 | 
					func VerifyFiles(rootDir string, checkFileNameList string, checkFileSumList string) error {
 | 
				
			||||||
	// Parse command-line arguments
 | 
					 | 
				
			||||||
	// checkFileNameList := flag.String("checkFileNameList", "", "Comma-separated list of files to check.")
 | 
					 | 
				
			||||||
	// checkFileSumList := flag.String("checkFileSumList", "", "Comma-separated list of expected checksums.")
 | 
					 | 
				
			||||||
	// rootDir := flag.String("rootDir", ".", "Root directory containing the files.")
 | 
					 | 
				
			||||||
	// flag.Parse()
 | 
					 | 
				
			||||||
	// Process input file names and checksums
 | 
					 | 
				
			||||||
	if len(checkFileNameList) == 0 {
 | 
						if len(checkFileNameList) == 0 {
 | 
				
			||||||
		return nil // fmt.Errorf("No checksum happened")
 | 
							return nil
 | 
				
			||||||
		os.Exit(1)
 | 
							os.Exit(1)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	fileNames := strings.Split(checkFileNameList, ",")
 | 
						fileNames := strings.Split(checkFileNameList, ",")
 | 
				
			||||||
	checkSums := strings.Split(checkFileSumList, ",")
 | 
						checkSums := strings.Split(checkFileSumList, ",")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Check if the number of files matches the number of checksums
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if len(fileNames) != len(checkSums) {
 | 
					 | 
				
			||||||
		return fmt.Errorf("Error: The number of files and checksums do not match.")
 | 
					 | 
				
			||||||
		os.Exit(1)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	allPassed := true
 | 
						allPassed := true
 | 
				
			||||||
	var errorMessages []string
 | 
						var errorMessages []string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -80,7 +67,7 @@ func VerifyFiles(rootDir string, checkFileNameList string, checkFileSumList stri
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if allPassed {
 | 
						if allPassed {
 | 
				
			||||||
		return nil // fmt.Errorf("Congratulations! All checksums passed!")
 | 
							return nil
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		return fmt.Errorf("Some checksums failed. Please review the errors below:")
 | 
							return fmt.Errorf("Some checksums failed. Please review the errors below:")
 | 
				
			||||||
		for _, msg := range errorMessages {
 | 
							for _, msg := range errorMessages {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user