summaryrefslogtreecommitdiff
path: root/cmd
AgeCommit message (Collapse)Author
2026-04-27Add context.Context to I/O-bound public APIs (generator.Run, processor.Run, ↵Paul Buetow
atom.Generate, syncOutput) - generator.Run(ctx, cfg) – ctx passed through to atom.Generate - processor.Run(ctx, cfg) – signature updated for cancellation propagation - atom.Generate(ctx, posts, cfg) – accepts ctx for future cancellation - syncOutput(ctx, cfg) – rsync subprocesses now use exec.CommandContext - Updated all call sites in tests, cmd/snonux/main.go, and integration tests - All call sites pass context.Background() / context.TODO() All tests pass: go test ./...
2026-04-27Externalize sync targets from hardcoded constants to env/configPaul Buetow
- Added SyncTargets and SyncRemoteDir to internal/config.Config. - Replaced the package-level syncTargets and syncRemoteDir constants in cmd/snonux/sync.go with default values, populated lazily via resolveSyncConfig(). - Accept --sync-targets and --sync-remote-dir CLI flags; fall back to SNONUX_SYNC_TARGETS and SNONUX_SYNC_REMOTE_DIR env vars; then fall back to the previous hardcoded defaults (pi0/pi1, /var/www/html/snonux/).
2026-04-27refactor(snonux): separate CLI parsing from I/O and theme logicPaul Buetow
Split the overloaded parseFlags into focused helpers: - parseFlags now does *only* CLI flag parsing. - resolvePaths handles ~ expansion. - validateDirs performs filesystem creation/checks. - resolveTheme selects the random theme using rng. This removes the SRP violation in parseFlags and makes each function independently testable. Tests updated accordingly. Fixes: z8
2026-04-27fix: seed rand source for --theme random to avoid deterministic outputPaul Buetow
2026-04-10Release v0.1.5v0.1.5Paul Buetow
--sync rsync to pi mirrors when reachable; default dirs ./inbox ./dist; ignore inbox/dist. Splash index paths (/, trailing slash). PgUp/PgDn scroll + highlight. Nav shared CSS in head for valid HTML; ARIA/viewport fixes; neon viewport. Made-with: Cursor
2026-04-10Release v0.1.3v0.1.3Paul Buetow
Testable CLI flags; version package under internal/version; broad tests for atom, generator, post, processor, and cmd—overall coverage ~85%. Made-with: Cursor
2026-04-10cli: document -version and --version in flag helpv0.0.1Paul Buetow
Made-with: Cursor
2026-04-10Add internal version package and -version CLI flagPaul Buetow
Introduce Version constant (0.0.1) in internal/version.go and wire -version/-v in cmd/snonux to print it and exit successfully. Made-with: Cursor
2026-04-10enhance WebGL scenes, modal transparency, new cosmos theme, UX polishPaul Buetow
Themes: - glass → cosmos: ringed planet with asteroid belt, nebula clouds, 2500 stars - ocean: sea rock spires, bioluminescent jellyfish, rising bubbles, whale - volcano: glowing lava floor with vertex animation, molten boulders, smoke plume particles, underground furnace glow sphere UX / shared: - Modal background changed to rgba(0,0,0,0.55) so WebGL stays visible behind expanded post view (all themes) - Max-width 1200px applied to all themes via shared navmodal CSS - Default theme changed from "neon" to "random" Sample content: - 120 example entries processed into dist/ for pagination testing (4 pages of 42 posts each) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10add WebGL scenes to all themes, sounds, image sizing, new themesPaul Buetow
- All 11 themes now have unique Three.js WebGL backgrounds: aurora: flowing sine-wave ribbon meshes with additive blending brutalist: harsh rotating white/red wireframe boxes glass: drifting crystal icosahedron shards, semi-transparent matrix: digital rain particle columns with per-vertex colour fade ocean: animated vertex-displaced wave surface with orbiting light retro: amber demo-scene cube with orbiting octahedrons synthwave: sunset sphere with scan-line rings and perspective grid terminal: green icosahedron wireframe with orbiting torus particles neon: existing Three.js orb and rings (unchanged) plasma (replaces minimal): drifting additive-blend colour blobs volcano (replaces paper): rising ember particles with lifecycle - shared.go: distinct sounds for j/k nav (220Hz beep), Enter (ascending triangle chime), and Esc (descending sine sweep) - shared.go: images are now thumbnails (max-height:220px) in list view and expand to full width inside the modal (CSS override in navmodal) - main.go: --list-themes flag prints all theme names and exits; --theme random picks a random theme at all generation time - themes.go: updated registry with plasma/volcano replacing minimal/paper Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09add snonux static microblog generatorPaul Buetow
Full Go implementation with: - txt/md/image/audio input processing, URL auto-linking in .txt files - Paginated HTML output with Atom feed - 11 visual themes: neon, terminal, synthwave, minimal, brutalist, paper, aurora, matrix, ocean, retro, glass (selectable via --theme flag) - Keyboard navigation (j/k/arrows, Enter modal, h/l page nav) - Shared nav templates (navhints, navmodal, navscript) across all themes - Magefile build automation; integration test suite covering all themes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>