mirror of
				https://github.com/go-task/task.git
				synced 2025-10-30 23:58:01 +02:00 
			
		
		
		
	fix: only rewrite checksum files if the checksum has changed
This commit is contained in:
		| @@ -42,7 +42,7 @@ func (checker *ChecksumChecker) IsUpToDate(t *taskfile.Task) (bool, error) { | |||||||
| 		return false, nil | 		return false, nil | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if !checker.dry { | 	if !checker.dry && oldMd5 != newMd5 { | ||||||
| 		_ = os.MkdirAll(filepathext.SmartJoin(checker.tempDir, "checksum"), 0o755) | 		_ = os.MkdirAll(filepathext.SmartJoin(checker.tempDir, "checksum"), 0o755) | ||||||
| 		if err = os.WriteFile(checksumFile, []byte(newMd5+"\n"), 0o644); err != nil { | 		if err = os.WriteFile(checksumFile, []byte(newMd5+"\n"), 0o644); err != nil { | ||||||
| 			return false, err | 			return false, err | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								task_test.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								task_test.go
									
									
									
									
									
								
							| @@ -508,9 +508,10 @@ func TestStatusChecksum(t *testing.T) { | |||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			var buff bytes.Buffer | 			var buff bytes.Buffer | ||||||
|  | 			tempdir := filepathext.SmartJoin(dir, ".task") | ||||||
| 			e := task.Executor{ | 			e := task.Executor{ | ||||||
| 				Dir:     dir, | 				Dir:     dir, | ||||||
| 				TempDir: filepathext.SmartJoin(dir, ".task"), | 				TempDir: tempdir, | ||||||
| 				Stdout:  &buff, | 				Stdout:  &buff, | ||||||
| 				Stderr:  &buff, | 				Stderr:  &buff, | ||||||
| 			} | 			} | ||||||
| @@ -522,9 +523,19 @@ func TestStatusChecksum(t *testing.T) { | |||||||
| 				require.NoError(t, err) | 				require.NoError(t, err) | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | 			// Capture the modification time, so we can ensure the checksum file | ||||||
|  | 			// is not regenerated when the hash hasn't changed. | ||||||
|  | 			s, err := os.Stat(filepathext.SmartJoin(tempdir, "checksum/"+test.task)) | ||||||
|  | 			require.NoError(t, err) | ||||||
|  | 			time := s.ModTime() | ||||||
|  |  | ||||||
| 			buff.Reset() | 			buff.Reset() | ||||||
| 			require.NoError(t, e.Run(context.Background(), taskfile.Call{Task: test.task})) | 			require.NoError(t, e.Run(context.Background(), taskfile.Call{Task: test.task})) | ||||||
| 			assert.Equal(t, `task: Task "`+test.task+`" is up to date`+"\n", buff.String()) | 			assert.Equal(t, `task: Task "`+test.task+`" is up to date`+"\n", buff.String()) | ||||||
|  |  | ||||||
|  | 			s, err = os.Stat(filepathext.SmartJoin(tempdir, "checksum/"+test.task)) | ||||||
|  | 			require.NoError(t, err) | ||||||
|  | 			assert.Equal(t, time, s.ModTime()) | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user