docs: sync documentation with v1.1.0 protocol and CLI changes
This commit is contained in:
+42
-32
@@ -119,46 +119,50 @@ chore: update golang.org/x/crypto
|
||||
```
|
||||
goget/
|
||||
├── cmd/
|
||||
│ └── goget/ # CLI entry point
|
||||
│ └── goget/ # CLI entry point
|
||||
│ ├── main.go # Core run loop, flag setup, orchestrator
|
||||
│ ├── app.go # Application wiring
|
||||
│ ├── commands.go # Command handlers (download, upload, queue, config, etc.)
|
||||
│ ├── flags.go # CLI flag definitions (struct + defineFlags)
|
||||
│ ├── completion.go # Shell completion generators (bash, zsh, fish)
|
||||
│ ├── man_page.go # Man page generation
|
||||
│ ├── man_page.go # Embedded manpage source and --generate-man-page
|
||||
│ ├── setup.go # One-time CLI setup helpers
|
||||
│ ├── schedule.go # Cron and datetime scheduling
|
||||
│ └── verify.go # Checksum and PGP verification
|
||||
├── internal/
|
||||
│ ├── archive/ # Archive extraction (tar, targz, tarbz2, zip)
|
||||
│ ├── auth/ # Authentication (basic, digest, OAuth 2.0, netrc)
|
||||
│ ├── cli/ # CLI utilities (help text, progress bar, color output)
|
||||
│ ├── compression/ # Decompression (gzip, bzip2, zlib, flate, lzw)
|
||||
│ ├── config/ # TOML config loading, saving, and merging
|
||||
│ ├── cookie/ # Netscape-format cookie jar
|
||||
│ ├── core/ # Core types (DownloadRequest, Result, Protocol interface, errors)
|
||||
│ ├── crypto/ # Checksum verification, PGP, certificate handling
|
||||
│ ├── format/ # Human-readable formatting (bytes, speed)
|
||||
│ ├── hsts/ # HSTS cache (RFC 6797)
|
||||
│ ├── log/ # Structured logger (text/JSON output, level filtering)
|
||||
│ ├── linkrewrite/ # HTML link rewriting for offline mirroring
|
||||
│ ├── metalink/ # Metalink (multi-source downloads)
|
||||
│ ├── mirror/ # Website mirroring logic
|
||||
│ ├── output/ # Output writing (atomic writes, resume metadata)
|
||||
│ ├── protocol/ # Protocol abstraction layer
|
||||
│ │ ├── http/ # HTTP/HTTPS client, parallel download, upload
|
||||
│ │ ├── ftp/ # FTP/FTPS client
|
||||
│ │ ├── sftp/ # SFTP client
|
||||
│ │ ├── file/ # Local file:// protocol
|
||||
│ │ ├── dataurl/ # data: URI protocol
|
||||
│ │ ├── gopher/ # Gopher protocol
|
||||
│ │ ├── gemini/ # Gemini protocol
|
||||
│ │ └── webdav/ # WebDAV protocol
|
||||
│ ├── queue/ # Download queue management
|
||||
│ ├── recursive/ # Recursive download (HTML parser, URL filter, crawler)
|
||||
│ ├── warc/ # WARC archiving writer
|
||||
│ └── transport/ # HTTP transport (dialer, proxy, TLS, retry, rate limiting)
|
||||
│ ├── archive/ # Archive extraction (tar, targz, tarbz2, zip)
|
||||
│ ├── auth/ # Authentication (basic, digest, OAuth 2.0, netrc)
|
||||
│ ├── cli/ # CLI utilities (help text, progress bar, color output)
|
||||
│ ├── compression/ # Decompression (gzip, bzip2, zlib, flate, lzw)
|
||||
│ ├── config/ # TOML config loading, saving, and merging
|
||||
│ ├── cookie/ # Netscape-format cookie jar
|
||||
│ ├── core/ # Core types (DownloadRequest, Result, Protocol interface, errors)
|
||||
│ ├── crypto/ # Checksum verification, PGP, certificate handling
|
||||
│ ├── format/ # Human-readable formatting (bytes, speed)
|
||||
│ ├── hsts/ # HSTS cache (RFC 6797)
|
||||
│ ├── linkrewrite/ # HTML link rewriting for offline mirroring
|
||||
│ ├── log/ # Structured logger (text/JSON output, level filtering)
|
||||
│ ├── metalink/ # Metalink (multi-source downloads)
|
||||
│ ├── mirror/ # Website mirroring logic
|
||||
│ ├── output/ # Output writing (atomic writes, resume metadata)
|
||||
│ ├── pool/ # Unified recursive worker pool (FTP, SFTP, WebDAV)
|
||||
│ ├── protocol/ # Protocol abstraction layer
|
||||
│ │ ├── http/ # HTTP/HTTPS client, parallel download, upload
|
||||
│ │ ├── ftp/ # FTP/FTPS client
|
||||
│ │ ├── sftp/ # SFTP client
|
||||
│ │ ├── file/ # Local file:// protocol
|
||||
│ │ ├── dataurl/ # data: URI protocol
|
||||
│ │ ├── gopher/ # Gopher protocol
|
||||
│ │ ├── gemini/ # Gemini protocol
|
||||
│ │ ├── webdav/ # WebDAV protocol
|
||||
│ │ └── register/ # Single registration entry point
|
||||
│ ├── queue/ # Download queue management
|
||||
│ ├── recursive/ # Recursive download (HTML parser, URL filter, crawler)
|
||||
│ ├── transport/ # HTTP transport (dialer, proxy, TLS, retry, rate limiting)
|
||||
│ └── warc/ # WARC archiving writer
|
||||
├── pkg/
|
||||
│ └── api/ # Public library API (Client, Download, Upload, Queue)
|
||||
└── docs/ # Architecture and design documentation
|
||||
│ └── api/ # Public library API (Client, Download, Upload, Queue)
|
||||
└── docs/ # Architecture and design documentation
|
||||
```
|
||||
|
||||
## Architecture Overview
|
||||
@@ -189,11 +193,14 @@ graph TD
|
||||
Metalink[internal/metalink/]
|
||||
QueueInt[internal/queue/]
|
||||
Archive[internal/archive/]
|
||||
Pool[internal/pool/ - Unified worker pool]
|
||||
Log[internal/log/ - Structured logger]
|
||||
API[pkg/api/ - Public Library]
|
||||
|
||||
CLI --> Flags
|
||||
CLI --> Config
|
||||
CLI --> Core
|
||||
CLI --> Log
|
||||
CLI --> Auth
|
||||
CLI --> Crypto
|
||||
CLI --> Recursive
|
||||
@@ -214,6 +221,9 @@ graph TD
|
||||
HTTP --> Cookie
|
||||
HTTP --> HSTS
|
||||
HTTP --> Output
|
||||
FTP --> Pool
|
||||
SFTP --> Pool
|
||||
WebDAV --> Pool
|
||||
API --> Core
|
||||
API --> Registry
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user