feat: concurrent Windows collection, platform tests, and CLI improvements#10
Merged
christiangda merged 7 commits intomainfrom Mar 21, 2026
Merged
feat: concurrent Windows collection, platform tests, and CLI improvements#10christiangda merged 7 commits intomainfrom
christiangda merged 7 commits intomainfrom
Conversation
- Add installer resources (welcome.html, readme.html, license.html) - Convert Apache 2.0 LICENSE to HTML for macOS Installer.app display - Add Distribution XML for productbuild with Welcome, Read Me, and License Agreement screens - Update Makefile build-dist-pkg to use pkgbuild + productbuild - Users see install location, usage examples, uninstall instructions, and must agree to Apache 2.0 license before installing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add Welcome, Read Me, License (Apache 2.0), and Distribution XML - Fix .gitignore: scope 'machineid' rule to root only so installer/ macos/machineid/ directory is not ignored Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ents - Rewrite Windows collectIdentifiers to run all hardware queries concurrently using goroutines, reducing ID generation from ~8-12s to ~2-3s by parallelizing slow wmic/PowerShell calls. - Add comprehensive platform-specific test files: windows_test.go (50+ tests covering parsing, fallback, concurrent collection, diagnostics) and linux_test.go (25+ tests covering parsing, validation, file reading, mock executor integration). - Add platform-specific example files for Windows and Linux with testable examples for diagnostics, integrity, and platform notes. - Improve CLI help: grouped flags by category, documented default behavior and exit codes, cleaner version output with aligned key-value pairs, rename -version.long to -version-long, include salt in JSON output. - Fix all golangci-lint errors across darwin/linux/windows: add proper error checking in tests, nolint annotations for example functions, apply De Morgan's law fix. - Update doc.go and README.md with concurrent Windows collection details and revised CLI documentation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…RORS is true Avoid double stdout redirection when the command already contains a redirect (e.g. `> file`). Uses $(findstring) to detect existing redirects and only adds `2>/dev/null` in that case. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
collectIdentifierson Windows to run all hardware queries (wmic/PowerShell) in parallel using goroutines, reducing ID generation time from ~8-12s to ~2-3swindows_test.go(50+ tests) andlinux_test.go(25+ tests) covering parsing functions, fallback paths, concurrent collection, mock executor integration, and diagnostics — previously only Darwin had dedicated platform testsexample_windows_test.goandexample_linux_test.gowith testable examples for diagnostics, integrity verification, and platform-specific notes-cpu -motherboard -uuid) and exit codes, cleaner-version-longoutput with aligned key-value pairs, renamed-version.longto-version-long, addedsaltto JSON outputgolangci-lintissues across darwin/linux/windows (errcheck, staticcheck)doc.goandREADME.mdwith concurrent Windows details and revised CLI documentationTest plan
go test -race ./...)golangci-lint run ./...reports 0 issues on darwin, linux, and windowsgo build ./...succeeds for all three platformsgo vet ./...passes for all three platforms-h) displays grouped, professional format-version,-version-long) display clean formatsaltfield when salt is provided🤖 Generated with Claude Code