feat(healthcheck): simpler repo verify message (#62)
This commit is contained in:
		
							parent
							
								
									0009128de9
								
							
						
					
					
						commit
						0b1a20d8b5
					
				|  | @ -29,16 +29,15 @@ func getChecksum(filePath string) (string, error) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // checkFileChecksum checks if a single file's checksum matches the expected value
 | // checkFileChecksum checks if a single file's checksum matches the expected value
 | ||||||
| func checkFileChecksum(rootDir, fileName, expectedChecksum string) error { | func checkFileChecksum(filePath, expectedChecksum string) (bool, error) { | ||||||
| 	filePath := filepath.Join(rootDir, strings.TrimSpace(fileName)) |  | ||||||
| 	actualChecksum, err := getChecksum(filePath) | 	actualChecksum, err := getChecksum(filePath) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return fmt.Errorf("Error reading file %s: %v", filePath, err) | 		return false, fmt.Errorf("Error reading file %s: %v", filePath, err) | ||||||
| 	} | 	} | ||||||
| 	if actualChecksum != expectedChecksum { | 	if actualChecksum != expectedChecksum { | ||||||
| 		return fmt.Errorf("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 true, nil | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return false, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func VerifyFiles(rootDir string, checkFileNameList string, checkFileSumList string) error { | func VerifyFiles(rootDir string, checkFileNameList string, checkFileSumList string) error { | ||||||
|  | @ -52,12 +51,23 @@ func VerifyFiles(rootDir string, checkFileNameList string, checkFileSumList stri | ||||||
| 		return fmt.Errorf("Error: The number of files and checksums do not match.") | 		return fmt.Errorf("Error: The number of files and checksums do not match.") | ||||||
| 	} | 	} | ||||||
| 	// Check each file's checksum
 | 	// Check each file's checksum
 | ||||||
|  | 	alteredFiles := []string{} | ||||||
| 	for i, fileName := range fileNames { | 	for i, fileName := range fileNames { | ||||||
| 		expectedChecksum := strings.TrimSpace(checkSums[i]) | 		expectedChecksum := strings.TrimSpace(checkSums[i]) | ||||||
| 		err := checkFileChecksum(rootDir, fileName, expectedChecksum) | 		filePath := filepath.Join(rootDir, strings.TrimSpace(fileName)) | ||||||
|  | 		altered, err := checkFileChecksum(filePath, expectedChecksum) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  | 		if altered { | ||||||
|  | 			alteredFiles = append(alteredFiles, filePath) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if len(alteredFiles) > 0 { | ||||||
|  | 		return fmt.Errorf("The following files have been altered: `%s`.\n"+ | ||||||
|  | 			"Please revert your changes or contact the teaching team "+ | ||||||
|  | 			"if you have a valid reason for adjusting them.", | ||||||
|  | 			strings.Join(alteredFiles, "`, `")) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user