feat(rust): RunicNPC as the Rust bundle's third artefact (runicnpc stage 4, D224)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 1m27s
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 1m27s
The compose job carries the latest RunicNPC release that answers the API the bridge's manifest declares (runicnpc_api), verified against its SHA256SUMS like the other two; none when the bridge needs none, RunicNPC has not released, or its API is too old, each said in the summary. Walked against a mock Gitea in all three cases. The installer reads the optional npc component (older bundles still parse), fetches and checks RunicNPC's tarball against its manifest, places RunicNPC.cs before the bridge in each instance's plugins directory, records it, puts it back on update when edited or deleted, reports it in doctor, and removes it on uninstall. Its data directory is never touched. Kits joins the required plugins it reports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -62,6 +62,12 @@ pub fn run(cli: &Cli) -> Result<i32> {
|
||||
for helper in i.helpers.values() {
|
||||
println!(" · remove {}", helper.path);
|
||||
}
|
||||
if let Some(npc) = &i.npc {
|
||||
println!(
|
||||
" · remove {} (RunicNPC; its placements in data/RunicNPC/ are kept)",
|
||||
npc.path
|
||||
);
|
||||
}
|
||||
println!(
|
||||
" · keep {} (the website's; it names this server)",
|
||||
i.plugin_config
|
||||
@@ -114,6 +120,10 @@ pub fn run(cli: &Cli) -> Result<i32> {
|
||||
for helper in instance.helpers.values() {
|
||||
remove_file(Path::new(&helper.path), &mut done, &mut problems);
|
||||
}
|
||||
// RunicNPC is the installer's file (D224); its data directory is the admins', and stays.
|
||||
if let Some(npc) = &instance.npc {
|
||||
remove_file(Path::new(&npc.path), &mut done, &mut problems);
|
||||
}
|
||||
remove_file(Path::new(&instance.plugin_path), &mut done, &mut problems);
|
||||
if cli.purge {
|
||||
remove_file(Path::new(&instance.config_path), &mut done, &mut problems);
|
||||
|
||||
Reference in New Issue
Block a user