ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
mdl_compose.c
Go to the documentation of this file.
1
15#include "mdl_net_curl.h"
16
30
49internal_curl_open(void* ctx, const mdl_net_policy_t* policy, mdl_net_iface_t* out_net)
50{
51 return mdl_net_curl_init(out_net, (mdl_net_curl_storage_t*)ctx, policy);
52}
53
65
70
72 mdl_format_t format,
73 const mdl_run_opts_t* opts,
74 const mdl_nums_t* n)
75{
76 return (mdl_series_run_t){.cfg_path = a->cfg,
77 .series_url = a->series,
78 .out_dir = a->out,
79 .cache_dir = a->cache_dir,
80 .format = format,
81 .combine = !a->separate,
82 .update = a->update,
83 .from_present = n->from_present,
84 .from_num = n->from_num,
85 .chapters = n->chapters,
86 .seed = n->seed,
87 .timeout = n->timeout,
88 .opts = opts};
89}
90
92 mdl_cli_mode_t mode,
93 mdl_format_t format,
94 const mdl_run_opts_t* opts,
95 const mdl_nums_t* nums,
96 const mdl_series_run_t* run)
97{
98 switch (mode) {
100 return mdl_app_run_series(run);
103 const mdl_discover_run_t request = {.cfg_path = a->cfg,
104 .term = a->search,
105 .pick = nums->pick,
106 .timeout = nums->timeout,
107 .seed = nums->seed,
108 .browse = a->browse};
109 return mdl_app_run_discover(&request, opts, run);
110 }
112 return mdl_app_run_list(a->out);
114 return mdl_app_run_update_all(run);
116 return mdl_app_run_remove(a->out, a->remove_series);
118 return mdl_app_run_verify((a->verify_dir != nullptr) ? a->verify_dir : a->out);
122 return mdl_app_run_pack(a->pack, format);
124 return mdl_app_run_artifact(a->page_url, a->out, nums->timeout, opts);
126 return mdl_app_run_page(a->page_url,
127 a->out,
128 a->attr,
129 nums->max_imgs,
130 nums->seed,
131 nums->timeout,
132 opts);
133 default:
134 return 2;
135 }
136}
int mdl_app_run_artifact(const char *url, const char *out_dir, uint32_t timeout, const mdl_run_opts_t *opts)
Download, validate and atomically publish one direct artifact.
int mdl_app_run_update_all(const mdl_series_run_t *base)
Incrementally update every tracked series under a library root.
int mdl_app_run_discover(const mdl_discover_run_t *req, const mdl_run_opts_t *opts, const mdl_series_run_t *base)
Run search or browse discovery and optionally download one result.
int mdl_app_run_verify(const char *target_dir)
Verify one library or artifact tree without mutating it.
int mdl_app_run_init_site(const char *url, const char *descriptor_dir)
Create a starter descriptor for one validated site URL.
int mdl_app_run_remove(const char *out_dir, const char *url_or_slug)
Remove one explicitly tracked series directory.
int mdl_app_run_page(const char *url, const char *out_dir, const char *attr, uint32_t max_imgs, uint64_t seed, uint32_t timeout, const mdl_run_opts_t *opts)
Download image resources from one direct page URL.
int mdl_app_run_pack(const char *dir, mdl_format_t format)
Package an existing image directory without network access.
int mdl_app_run_list(const char *out_dir)
List every tracked series under one library root.
int mdl_app_run_series(const mdl_series_run_t *run)
Execute one prepared series download.
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_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_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_init_site
Generate a starter descriptor template.
Definition mdl_cli.h:40
const mdl_net_provider_t * priv_mdl_compose_net_provider(void)
The libcurl transport factory this form injects into every run.
Definition mdl_compose.c:66
mdl_series_run_t priv_mdl_compose_build_run(const mdl_args_t *a, mdl_format_t format, const mdl_run_opts_t *opts, const mdl_nums_t *n)
Translate validated argv state into one portable series-run value.
Definition mdl_compose.c:71
static mdl_net_curl_storage_t s_curl_storage
The one caller-owned libcurl backend context this form provides.
Definition mdl_compose.c:29
static const mdl_net_provider_t s_curl_provider
This form's injected transport factory, bound once at compile time.
Definition mdl_compose.c:63
int priv_mdl_compose_dispatch(const mdl_args_t *a, mdl_cli_mode_t mode, mdl_format_t format, const mdl_run_opts_t *opts, const mdl_nums_t *nums, const mdl_series_run_t *run)
Route the one validated mode to its portable application entry point.
Definition mdl_compose.c:91
static ra8_err_t internal_curl_open(void *ctx, const mdl_net_policy_t *policy, mdl_net_iface_t *out_net)
Open one hardened libcurl interface over the form's backend storage.
Definition mdl_compose.c:49
What this FORM injects, and how one parsed invocation reaches a mode.
mdl_format_t
Artifact format selected by a media-download composition root.
Definition mdl_format.h:35
Factory for the concrete libcurl-backed mdl_net_iface_t backend.
struct mdl_net_curl_storage mdl_net_curl_storage_t
ra8_err_t mdl_net_curl_init(mdl_net_iface_t *net, mdl_net_curl_storage_t *storage, const mdl_net_policy_t *policy)
Initialise a libcurl-backed host network interface in caller storage.
#define RA8_PRIV
Module-private helper: shared across TUs but only inside one library.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Parsed command-line options in string form (converted by main).
Definition mdl_cli.h:57
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 * cfg
–config path.
Definition mdl_cli.h:58
const char * page_url
positional page URL (page mode).
Definition mdl_cli.h:60
const char * remove_series
–remove: series URL/slug to drop from the library.
Definition mdl_cli.h:73
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
const char * attr
–attr.
Definition mdl_cli.h:63
bool browse
–browse: list a site's latest-updates page.
Definition mdl_cli.h:82
const char * cache_dir
–cache-dir: persistent per-host cache root.
Definition mdl_cli.h:62
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
One search or browse request against a configured site descriptor.
Definition mdl_app.h:140
A network backend handle: an immutable method table plus its state.
Session-wide security policy for the network backend.
Definition mdl_net.h:81
An injected FACTORY for mdl_net_iface_t: which backend, decided once.
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
Parameters of one series download, as values rather than arguments.
Definition mdl_app.h:114