6edc798de0
Add version line after banner with release date
...
Added mfer/constants.go with Version and ReleaseDate constants for
deterministic builds. Banner now shows "mfer by @sneak : v0.1.0 released 2025-12-17"
2025-12-17 15:23:55 -08:00
818358a8a1
Fix pathIsHidden treating base directory as hidden, print banner to stdout
...
- pathIsHidden(".") was returning true, causing freshen to skip entire
directory tree when dotfiles excluded
- Banner now prints directly to stdout to avoid log prefix artifacts
2025-12-17 15:20:56 -08:00
5523cb1595
Add Verbose log level between Info and Debug
...
Implemented full log level hierarchy: Fatal, Error, Warn, Info, Verbose, Debug.
- Verbose level (-v) shows detailed operations like file changes (M/A/D)
- Debug level (-vv) shows low-level tracing with caller info
- Quiet mode (-q) sets level to Error, suppressing Info messages
- Banner and summary output now use log levels for filtering
2025-12-17 15:17:27 -08:00
0e86562c09
Exclude dotfiles by default, add --include-dotfiles flag
...
Changed the default behavior to exclude dotfiles (files/dirs starting with .)
which is the more common use case. Added --include-dotfiles flag for when
hidden files need to be included in the manifest.
2025-12-17 15:10:22 -08:00
6dc496fa9e
Add verbose output for freshen showing M/A/D files with -v
2025-12-17 15:04:43 -08:00
e6cb906d35
Change operational log messages from Debug to Info
2025-12-17 15:02:46 -08:00
45201509ff
Fix progress line not clearing before final status
2025-12-17 15:01:32 -08:00
21028af9aa
Replace gzip with zstd compression
...
Use zstd with SpeedBestCompression level for better compression
ratios. Remove gzip support entirely. Include generated protobuf
file to allow building without protoc.
2025-12-17 14:49:30 -08:00
150bac82cf
Add TODO.md with 1.0 release tasks
2025-12-17 14:40:27 -08:00
92bd13efde
Fix all linter errors
...
- Add explicit error ignoring with _ = for Close/Remove calls
- Rename WriteTo to Write to avoid io.WriterTo interface conflict
- Fix errcheck warnings in fetch, freshen, gen, mfer, checker,
deserialize, serialize, and output files
2025-12-17 14:37:52 -08:00
531f460f87
Add CLAUDE.md
2025-12-17 14:33:00 -08:00
c5ca3e2ced
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.
2025-12-17 14:30:10 -08:00
fded1a0393
Remove generateInner, now handled by Builder
...
- Remove generateInner() from serialize.go
- Update generate() to error if pbInner not set
- Remove legacy tests that depended on old code path
- Update TODO item to reflect removal
2025-12-17 11:27:41 -08:00
5d7c729efb
remove golangci-lint config files
2025-12-17 11:27:41 -08:00
48c3c09d85
Rename ManifestBuilder to Builder
2025-12-17 11:27:41 -08:00
f3be3eba84
Add TODO: change FileProgress callback to channel-based
2025-12-17 11:27:41 -08:00
5e65b3a0fd
Add TODO section to README with prioritized task list
2025-12-17 11:27:41 -08:00
79fc5cca6c
Add godoc strings to all exported types, functions, and fields
...
Documents:
- cli: NO_COLOR, RunOptions fields, CLIApp, VersionString
- checker: Result fields, Status constants, CheckStatus fields
- scanner: EnumerateStatus, ScanStatus, Options, FileEntry fields
- log: Level alias, DisableStyling, Init, Info/Debug functions,
verbosity helpers, GetLogger, GetLevel, WithError
- mfer: ManifestScanOptions, New, NewFromPaths, NewFromFS, MAGIC
2025-12-17 11:27:41 -08:00
155ebe9a78
Merge branch 'main' into next
2025-12-17 19:01:52 +00:00
dc2ea47f6a
Add testable CLI with dependency injection and new scanner/checker packages
...
Major changes:
- Refactor CLI to accept injected I/O streams and filesystem (afero.Fs)
for testing without touching the real filesystem
- Add RunOptions struct and RunWithOptions() for configurable CLI execution
- Add internal/scanner package with two-phase manifest generation:
- Phase 1 (Enumeration): walk directories, collect metadata
- Phase 2 (Scan): read contents, compute hashes, write manifest
- Add internal/checker package for manifest verification with progress
reporting and channel-based result streaming
- Add mfer/builder.go for incremental manifest construction
- Add --no-extra-files flag to check command to detect files not in manifest
- Add timing summaries showing file count, size, elapsed time, and throughput
- Add comprehensive tests using afero.MemMapFs (no real filesystem access)
- Add contrib/usage.sh integration test script
- Fix banner ASCII art alignment (consistent spacing)
- Fix verbosity levels so summaries display at default log level
- Update internal/log to support configurable output writers
2025-12-17 11:00:55 -08:00
2717685619
update readme to conform with my new readme howto standards ( #8 )
...
continuous-integration/drone/push Build is passing
Reviewed-on: #8
manually approving because CI is offline rn for some reason
2024-12-09 02:50:57 +00:00
13f39d598f
remove gofumpt from linting
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is failing
2024-05-22 14:34:05 -07:00
01bffc8388
latest
continuous-integration/drone/push Build is passing
2024-05-22 14:25:35 -07:00
7df558d8d0
next ( #5 )
...
continuous-integration/drone/push Build is passing
Co-authored-by: sneak <sneak@sneak.berlin>
Reviewed-on: #5
2022-12-09 00:02:33 +00:00
7a8a1b4a4a
rollup from next branch ( #4 )
...
continuous-integration/drone/push Build is passing
Co-authored-by: sneak <sneak@sneak.berlin>
Reviewed-on: #4
2022-12-04 07:59:36 +00:00
eb3b685aa3
i think this will build now
continuous-integration/drone/push Build is passing
2022-02-02 00:26:18 -08:00
9d8616866f
latest
2022-02-02 00:12:03 -08:00
b9c51fdeeb
proto3 compiler doesn't like required/optional anymore?
continuous-integration/drone/push Build is passing
2022-02-01 23:48:42 -08:00
7b869592ce
proto3 fixes to pass ci
continuous-integration/drone/push Build is failing
2022-02-01 23:44:58 -08:00
6628325843
ci debugging
continuous-integration/drone/push Build is failing
2022-02-01 23:35:33 -08:00
5b2f1fe2dd
wrangling ci more
continuous-integration/drone/push Build is failing
2022-02-01 22:45:37 -08:00
f74a320989
cleanup a bit
continuous-integration/drone/push Build is failing
2022-02-01 22:39:50 -08:00
c5f2cb7d9e
fix prereqs for builder image
continuous-integration/drone/push Build is failing
2022-02-01 22:35:10 -08:00
bb810fb728
this should fix ci
continuous-integration/drone/push Build is failing
2022-02-01 22:30:43 -08:00
b6c73621fc
used the arm64 hash instead of the amd64 one
continuous-integration/drone/push Build is failing
2022-02-01 22:20:59 -08:00
94f948da04
testing ci again
continuous-integration/drone/push Build is failing
2022-02-01 22:17:13 -08:00
16f461ef38
Update '.drone.yml'
continuous-integration/drone/push Build is failing
2022-02-02 06:11:09 +00:00
52720830e0
test to get ci working
continuous-integration/drone/push Build is failing
2022-02-01 22:05:16 -08:00
1b3e058b86
add final image
continuous-integration/drone/push Build is failing
2022-02-01 21:47:30 -08:00
7e4f8366a7
format readme, add build status badge
continuous-integration/drone/push Build is failing
2022-02-01 21:45:03 -08:00
ea96e0d786
latest, testing with ci now
2022-02-01 21:43:48 -08:00
081028f3b2
vendor in deps so CI goes fast
2022-02-01 21:36:27 -08:00
7a47873be3
getting ready for CI
2022-02-01 21:36:20 -08:00
69c8d45f8f
builds and runs!
2022-02-01 20:12:53 -08:00
01e9433404
latest
2022-02-01 20:12:32 -08:00
9dd2682b49
mtime/ctime/atime should be Timestamp
2021-11-03 04:23:09 -07:00
4fd76850da
renumber fields, add timestamp
2021-11-03 04:19:42 -07:00
92b92c190d
update file format a bit
2021-11-03 03:49:40 -07:00
38df94a9b2
add fmt target
2021-11-03 03:49:34 -07:00
4a6469b003
fmt
2021-11-03 03:49:24 -07:00