Change FileProgress callback to channel-based progress
Replace callback-based progress reporting in Builder.AddFile with channel-based FileHashProgress for consistency with EnumerateStatus and ScanStatus patterns. Update scanner.go to use the new channel API.
This commit is contained in:
@@ -112,6 +112,7 @@ Reading file contents and computing cryptographic hashes for manifest generation
|
||||
- `TotalBytes int64`
|
||||
- `ScannedBytes int64`
|
||||
- `BytesPerSec float64`
|
||||
- `ETA time.Duration`
|
||||
- `FileEntry struct` - Represents an enumerated file
|
||||
- `Path string` - Relative path (used in manifest)
|
||||
- `AbsPath string` - Absolute path (used for reading file content)
|
||||
@@ -154,6 +155,7 @@ Reading file contents and computing cryptographic hashes for manifest generation
|
||||
- `TotalBytes int64`
|
||||
- `CheckedBytes int64`
|
||||
- `BytesPerSec float64`
|
||||
- `ETA time.Duration`
|
||||
- `Failures int64`
|
||||
- `Checker struct` - Verifies files against a manifest
|
||||
- **Functions**
|
||||
@@ -352,15 +354,8 @@ The manifest file would do several important things:
|
||||
|
||||
# TODO
|
||||
|
||||
## High Priority
|
||||
|
||||
- [ ] **Implement `fetch` command** - Currently panics with "not implemented". Should download a manifest and its referenced files from a URL.
|
||||
- [ ] **Fix import in fetch.go** - Uses `github.com/apex/log` directly instead of `internal/log`, violating codebase conventions.
|
||||
|
||||
## Medium Priority
|
||||
|
||||
- [ ] **Add `--force` flag for overwrites** - Currently silently overwrites existing manifest files. Should require `-f` to overwrite.
|
||||
- [ ] **Implement FollowSymLinks option** - The flag exists in CLI and Options structs but does nothing. Scanner should use `EvalSymlinks` or `Lstat`.
|
||||
- [ ] **Change FileProgress callback to channel** - `mfer/builder.go` uses a callback for progress reporting; should use channels like `EnumerateStatus` and `ScanStatus` for consistency.
|
||||
- [ ] **Consolidate legacy manifest code** - `mfer/manifest.go` has old scanning code (`Scan()`, `addFile()`) that duplicates the new `internal/scanner` + `mfer/builder.go` pattern.
|
||||
- [ ] **Add context cancellation to legacy code** - The old `manifest.Scan()` doesn't support context cancellation; the new scanner does.
|
||||
|
||||
Reference in New Issue
Block a user