feat: web UI + HTTP server + Electron shell
- serve.go: embedded web UI (embed.FS), REST API endpoints for search, list, download (SSE progress), and WAV extraction - main.go: added serve subcommand and flag registration - web/ui: vanilla JS frontend with search cards, download queue, extract controls; dark theme, zero dependencies - electron/: Electron wrapper that spawns fetch serve as sidecar, reads port from stdout, creates BrowserWindow; electron-builder config for macOS .app bundle with akaiutil + script as resources Refs #1, #9
This commit is contained in:
@@ -68,6 +68,8 @@ func main() {
|
||||
cmdExtract(args)
|
||||
case "pipeline":
|
||||
cmdPipeline(args)
|
||||
case "serve":
|
||||
cmdServe(args)
|
||||
default:
|
||||
fmt.Fprintf(os.Stderr, "unknown command: %s\n", cmd)
|
||||
printUsage()
|
||||
@@ -84,6 +86,7 @@ Usage:
|
||||
akai-fetch download [flags] download ISOs (from file or by identifier)
|
||||
akai-fetch extract [flags] extract WAVs from downloaded ISOs
|
||||
akai-fetch pipeline [flags] full search → download → extract pipeline
|
||||
akai-fetch serve [flags] start HTTP server with web UI
|
||||
|
||||
Search flags:
|
||||
-query "akai sampler" search query (default: "subject:akai AND subject:sampler")
|
||||
@@ -109,7 +112,11 @@ Pipeline flags:
|
||||
-limit 30 max results
|
||||
-dir "./output" base output directory
|
||||
-download-jobs 2 concurrent downloads
|
||||
-extract-jobs 2 concurrent extractions`)
|
||||
-extract-jobs 2 concurrent extractions
|
||||
|
||||
Serve flags:
|
||||
-p, --port 0 HTTP port (0 = auto-assign)
|
||||
--no-browser don't open browser automatically`)
|
||||
}
|
||||
|
||||
// ─── Search ────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user