feat: initial goget release — modern IPv6-first download utility
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
NAME
|
||||
goget - Modern IPv6-First Downloader
|
||||
|
||||
SYNOPSIS
|
||||
goget --url <URL> [OPTIONS]
|
||||
|
||||
DESCRIPTION
|
||||
curl/wget replacement in Go. IPv6-first, parallel downloads, resume,
|
||||
checksum verification, recursive mirroring, and 8 protocols.
|
||||
|
||||
TARGET
|
||||
--url <URL> URL to download (repeatable)
|
||||
|
||||
OUTPUT
|
||||
--output <FILE> Output file (default: auto from URL)
|
||||
--restart Delete existing file and restart download
|
||||
--overwrite Overwrite existing file (no atomic rename)
|
||||
--content-disposition Use server-provided filename
|
||||
--keep-timestamps Set file modification time from Last-Modified
|
||||
|
||||
PROGRESS
|
||||
--verbose Verbose output with progress bar (default)
|
||||
--no-progress Hide progress bar
|
||||
--progress=dot Wget-style dot progress
|
||||
--quiet Suppress all output except errors
|
||||
--json Output progress as JSON-lines (for scripting)
|
||||
--debug Debug mode with detailed info
|
||||
|
||||
NETWORK
|
||||
--timeout <DURATION> Connection timeout (0 = auto)
|
||||
--max-time <DURATION> Maximum total transfer time
|
||||
--max-retries <N> Maximum retry attempts on failure
|
||||
--max-filesize <SIZE> Abort if file exceeds size (e.g., 100MB)
|
||||
--proxy <URL> Proxy server URL
|
||||
--no-ipv4 Disable IPv4 fallback
|
||||
--no-redirect Disable following HTTP redirects
|
||||
--dns-servers <IPs> Custom DNS servers (comma-separated)
|
||||
--bind-interface <IFACE> Bind to specific network interface
|
||||
--allow-private Allow connections to private/internal IPs
|
||||
--pinned-cert <SHA256> Certificate pinning (SHA-256 hash)
|
||||
|
||||
CURL-COMPATIBLE
|
||||
--header "K: V" Custom HTTP header (repeatable)
|
||||
--insecure Skip TLS certificate verification
|
||||
--cert <FILE> Client certificate (PEM)
|
||||
--key <FILE> Client private key (PEM)
|
||||
--data "key=value" Send POST data
|
||||
--form "field=value" Multipart form data (repeatable)
|
||||
--form "field=@file" Upload file via multipart form
|
||||
--spider Check URL existence only (HEAD request)
|
||||
--write-out FORMAT Print metadata (curl format)
|
||||
--trace-time Print HTTP timing breakdown
|
||||
|
||||
WGET-COMPATIBLE
|
||||
--accept "*.pdf" Accept patterns (filename glob or MIME)
|
||||
--no-parent Do not ascend to parent directory
|
||||
--adjust-extension Append .html extension to HTML files
|
||||
--wait <DURATION> Delay between requests (recursive)
|
||||
--random-wait Randomize wait time (0.5x - 1.5x)
|
||||
--page-requisites Download CSS/JS/images for pages
|
||||
--span-hosts Follow links to external domains
|
||||
--convert-links Convert links for local viewing
|
||||
--warc-file <FILE> Write WARC output for archiving
|
||||
--progress=dot Wget-style dot progress
|
||||
|
||||
RECURSIVE / MIRROR
|
||||
--recursive Enable recursive downloading
|
||||
--mirror Mirror entire website (infinite depth)
|
||||
--max-depth <N> Maximum recursion depth
|
||||
--follow-external Follow external domains
|
||||
--exclude-pattern <P> Exclude URL patterns (comma-separated)
|
||||
--no-convert-links Don't convert links in mirror mode
|
||||
--no-mirror-assets Don't download CSS/JS/images in mirror
|
||||
--no-robots Don't respect robots.txt in mirror
|
||||
--rate-limit <RATE> Rate limit (e.g., 1MB/s)
|
||||
|
||||
DOWNLOAD MANAGEMENT
|
||||
--queue Add to download queue
|
||||
--queue-list List queue items
|
||||
--queue-process Process download queue
|
||||
--queue-clear Clear completed items from queue
|
||||
--queue-file <PATH> Custom queue file path
|
||||
--queue-priority <N> Priority (1-10)
|
||||
--batch-file <FILE> Download URLs from file (one per line)
|
||||
--schedule <TIME> Schedule download (datetime or cron)
|
||||
--on-complete <CMD> Run command after successful download
|
||||
|
||||
AUTHENTICATION
|
||||
--username <USER> Username for HTTP Basic/Digest Auth
|
||||
--password <PASS> Password (prefer --password-file for security)
|
||||
--password-file <FILE> Read password from file
|
||||
--auth-type <TYPE> Auth type: basic, digest, auto
|
||||
--cookie-jar <FILE> Load/save cookies (Netscape format)
|
||||
--oauth-client-id <ID> OAuth 2.0 Client ID
|
||||
--oauth-client-secret <S>OAuth 2.0 Client Secret
|
||||
--oauth-token-url <URL> OAuth 2.0 Token URL
|
||||
--oauth-access-token <T> OAuth 2.0 Access Token
|
||||
--oauth-refresh-token <T>OAuth 2.0 Refresh Token
|
||||
|
||||
UPLOAD
|
||||
--upload Upload file instead of downloading
|
||||
--upload-method <M> PUT or POST (default: PUT)
|
||||
--upload-file <FILE> File to upload
|
||||
--form-data "k=v" Form data (comma-separated)
|
||||
--file-field <NAME> Form field name (default: file)
|
||||
|
||||
VERIFICATION
|
||||
--checksum <HASH> Expected checksum
|
||||
--checksum-algo <ALG> Algorithm: sha256, sha512, blake2b, sha3-256, sha3-512
|
||||
--checksum-file <FILE> Read checksum from SHA256SUMS file
|
||||
|
||||
PGP / GPG
|
||||
--pgp-decrypt Decrypt PGP file after download
|
||||
--pgp-verify Verify PGP signature
|
||||
--pgp-sig <FILE> Path to signature file (.asc, .sig)
|
||||
--pgp-key <FILE> Path to key file
|
||||
--pgp-passphrase <PASS> Passphrase for private key
|
||||
--pgp-passphrase-file F Read passphrase from file
|
||||
|
||||
METALINK
|
||||
--metalink Treat URL as Metalink (multi-source)
|
||||
--metalink-file <PATH> Path to local Metalink file
|
||||
|
||||
CONFIGURATION
|
||||
--init-config Generate default config file
|
||||
--config-get <KEY> Get config value
|
||||
--config-set <K> <V> Set config value
|
||||
--config-list List all config values
|
||||
--config-unset <KEY> Unset config value
|
||||
|
||||
INFORMATION
|
||||
--info <URL> Show file info without downloading
|
||||
--benchmark <URL> Benchmark download speed
|
||||
--generate-man-page Generate man page and exit
|
||||
--completion <SHELL> Generate shell completion (bash, zsh, fish)
|
||||
--help Show this help
|
||||
--version Show version
|
||||
|
||||
PROTOCOLS
|
||||
http:// https:// HTTP/1.1, HTTP/2, TLS 1.2/1.3
|
||||
ftp:// ftps:// FTP (active/passive, explicit TLS)
|
||||
file:// Local file copy + recursive directories
|
||||
data: Inline data (base64 + plain text)
|
||||
gopher:// RFC 1436 with type parsing
|
||||
gemini:// Gemini protocol (TLS, redirect)
|
||||
|
||||
EXAMPLES
|
||||
goget --url https://example.com/file.zip
|
||||
goget --url https://a.com/1.zip --url https://b.com/2.zip
|
||||
goget -H "Authorization: Bearer TOKEN" --url https://api.example.com
|
||||
goget --form "name=value" --form "file=@./data.csv" --url https://httpbin.org/post
|
||||
goget --recursive --accept "*.pdf" --url https://example.com/docs/
|
||||
goget --mirror --convert-links --url https://example.com --output ./mirror
|
||||
goget --schedule "0 2 * * *" --url https://example.com/daily.zip
|
||||
goget --json --no-progress --url https://example.com/file.zip
|
||||
|
||||
FILES
|
||||
~/.config/goget/config.json Configuration
|
||||
<file>.goget.meta Resume metadata
|
||||
|
||||
More: https://codeberg.org/petrbalvin/goget
|
||||
Reference in New Issue
Block a user