ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
mdl_cli.h
Go to the documentation of this file.
1
16#pragma once
17
18#include <stddef.h>
19#include <stdint.h>
20
21#include "mdl_app.h"
22#include "ra8_io_stream.h"
23
47
57typedef struct {
58 const char* cfg;
59 const char* series;
60 const char* page_url;
61 const char* out;
62 const char* cache_dir;
63 const char* attr;
64 const char* chapters;
65 const char* from;
66 const char* max;
67 const char* seed;
68 const char* timeout;
69 const char* format;
70 const char* pack;
71 const char* contact;
72 const char* max_bytes;
73 const char* remove_series;
74 const char* search;
75 const char* pick;
76 const char* proxy;
77 const char* socks5;
78 const char* cookie_file;
79 const char* ca_file;
80 const char* verify_dir;
81 const char* init_site_url;
82 bool browse;
83 bool separate;
84 bool update;
85 bool list;
87 bool polite;
92 bool progress;
93 bool refetch;
94 bool verify;
95 bool help;
96 bool version;
97 bool bad;
99
115[[nodiscard]] ra8_err_t mdl_cli_usage(ra8_io_stream_t* diagnostic, const char* a0);
116
133void mdl_cli_parse(int argc, char** argv, mdl_args_t* a);
134
152
162typedef struct {
163 uint64_t seed;
164 uint32_t timeout;
165 size_t chapters;
166 uint32_t max_imgs;
168 double from_num;
169 size_t pick;
170} mdl_nums_t;
171
203[[nodiscard]] ra8_err_t
205
234[[nodiscard]] ra8_err_t
235mdl_cli_validate(const mdl_args_t* a, ra8_io_stream_t* diagnostic, mdl_cli_mode_t* mode);
236
256const char* mdl_cli_mode_name(mdl_cli_mode_t mode);
The downloader's portable application layer: one run mode, one call.
const char * mdl_cli_mode_name(mdl_cli_mode_t mode)
Stable human-readable command mode name.
Definition mdl_cli.c:415
ra8_err_t mdl_cli_validate(const mdl_args_t *a, ra8_io_stream_t *diagnostic, mdl_cli_mode_t *mode)
Validate mode selection, required arguments, and per-mode options.
Definition mdl_cli.c:832
ra8_err_t mdl_cli_parse_nums(const mdl_args_t *a, ra8_io_stream_t *diagnostic, mdl_nums_t *n)
Strictly parse and validate every numeric CLI field.
mdl_cli_mode_t
Exactly one command mode selected by a valid invocation.
Definition mdl_cli.h:31
@ k_mdl_cli_mode_verify
Verify tracked state/pages/containers.
Definition mdl_cli.h:39
@ k_mdl_cli_mode_series
Download or update one configured series.
Definition mdl_cli.h:33
@ k_mdl_cli_mode_artifact
Download one verified HTTPS artifact.
Definition mdl_cli.h:42
@ k_mdl_cli_mode_page
Debug-download images from one page URL.
Definition mdl_cli.h:43
@ k_mdl_cli_mode_invalid
No valid primary mode.
Definition mdl_cli.h:32
@ k_mdl_cli_mode_search
Search a descriptor and optionally pick.
Definition mdl_cli.h:34
@ k_mdl_cli_mode_pack
Package a local page-image directory.
Definition mdl_cli.h:41
@ k_mdl_cli_mode_update_all
Update every tracked local series.
Definition mdl_cli.h:37
@ k_mdl_cli_mode_help
Print command help without running a mode.
Definition mdl_cli.h:44
@ k_mdl_cli_mode_list
List tracked local series.
Definition mdl_cli.h:36
@ k_mdl_cli_mode_remove
Remove one tracked local series.
Definition mdl_cli.h:38
@ k_mdl_cli_mode_browse
Browse a descriptor and optionally pick.
Definition mdl_cli.h:35
@ k_mdl_cli_mode_version
Print the program version and exit.
Definition mdl_cli.h:45
@ k_mdl_cli_mode_init_site
Generate a starter descriptor template.
Definition mdl_cli.h:40
mdl_run_opts_t mdl_cli_run_opts(const mdl_args_t *a)
Fold parsed args into the cross-cutting run options.
Definition mdl_cli.c:862
void mdl_cli_parse(int argc, char **argv, mdl_args_t *a)
Parse argv into a; numeric fields stay as strings for main.
Definition mdl_cli.c:278
ra8_err_t mdl_cli_usage(ra8_io_stream_t *diagnostic, const char *a0)
Write the complete usage block to an injected byte stream.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
ra8_io targetable byte-stream facade – one writer, many destinations.
Parsed command-line options in string form (converted by main).
Definition mdl_cli.h:57
const char * proxy
–proxy URL: HTTP/HTTPS proxy URL.
Definition mdl_cli.h:76
const char * verify_dir
–verify [DIR]: directory to verify.
Definition mdl_cli.h:80
bool update
–update: fetch only chapters not already complete.
Definition mdl_cli.h:84
const char * pack
–pack DIR: package an existing folder, no network.
Definition mdl_cli.h:70
const char * chapters
–chapters.
Definition mdl_cli.h:64
const char * cfg
–config path.
Definition mdl_cli.h:58
const char * timeout
–timeout.
Definition mdl_cli.h:68
const char * page_url
positional page URL (page mode).
Definition mdl_cli.h:60
bool allow_incomplete
–allow-incomplete: package a run with failed pages.
Definition mdl_cli.h:91
bool allow_private
–allow-private: permit loopback/private/link-local peers.
Definition mdl_cli.h:89
const char * remove_series
–remove: series URL/slug to drop from the library.
Definition mdl_cli.h:73
const char * socks5
–socks5 URL: SOCKS5 proxy URL.
Definition mdl_cli.h:77
bool verify
–verify: verify existing downloaded archives/files.
Definition mdl_cli.h:94
const char * contact
–contact: operator identity for the User-Agent.
Definition mdl_cli.h:71
bool polite
–polite: raise per-host delays.
Definition mdl_cli.h:87
const char * ca_file
–ca-file FILE: host composition CA input path.
Definition mdl_cli.h:79
bool progress
–progress: terminal progress bar during downloads.
Definition mdl_cli.h:92
bool bad
An unrecognised argument was seen.
Definition mdl_cli.h:97
bool ignore_robots
–ignore-robots: escape hatch (off by default).
Definition mdl_cli.h:88
const char * out
–out dir.
Definition mdl_cli.h:61
const char * init_site_url
–init-site URL: generate site descriptor template.
Definition mdl_cli.h:81
bool update_all
–update-all: incremental update of every tracked series.
Definition mdl_cli.h:86
bool help
–help/-h: print usage and exit successfully.
Definition mdl_cli.h:95
bool list
–list: list tracked series with coverage, then exit.
Definition mdl_cli.h:85
const char * attr
–attr.
Definition mdl_cli.h:63
const char * cookie_file
–cookie-file FILE: host composition input path.
Definition mdl_cli.h:78
bool version
–version: print version and exit successfully.
Definition mdl_cli.h:96
bool browse
–browse: list a site's latest-updates page.
Definition mdl_cli.h:82
const char * max_bytes
–max-bytes: per-response size cap.
Definition mdl_cli.h:72
const char * cache_dir
–cache-dir: persistent per-host cache root.
Definition mdl_cli.h:62
bool cross_host
–cross-host: permit cross-host redirects.
Definition mdl_cli.h:90
bool refetch
–refetch: bypass verified local page reuse.
Definition mdl_cli.h:93
const char * seed
–seed.
Definition mdl_cli.h:67
const char * max
–max.
Definition mdl_cli.h:66
const char * pick
–pick N: download the Nth discovery hit (1-based).
Definition mdl_cli.h:75
const char * series
–series URL.
Definition mdl_cli.h:59
bool separate
–separate: one archive per chapter (default: combine).
Definition mdl_cli.h:83
const char * from
–from: first chapter NUMBER to fetch (not an index).
Definition mdl_cli.h:65
const char * format
–format (cbz/cbt/cbt.gz/epub/jof/rabook).
Definition mdl_cli.h:69
The validated numeric CLI scalars, parsed once before any run mode.
Definition mdl_cli.h:162
size_t pick
–pick discovery hit (1-based; 0 = list).
Definition mdl_cli.h:169
bool from_present
Whether –from was supplied.
Definition mdl_cli.h:167
uint32_t timeout
–timeout ms (default k_req_timeout_def).
Definition mdl_cli.h:164
size_t chapters
–chapters window (clamped to >= 1).
Definition mdl_cli.h:165
uint32_t max_imgs
–max page images (0 = all).
Definition mdl_cli.h:166
uint64_t seed
–seed (default 1).
Definition mdl_cli.h:163
double from_num
–from chapter number, including decimals.
Definition mdl_cli.h:168
Cross-cutting policy and injected transport threaded into every mode.
Definition mdl_app.h:73
Caller-allocated byte-stream handle binding a sink to its context.