feat: use ckan config-tool instead of rust-ini, add locale-gen command

This commit is contained in:
rzmk 2025-08-20 12:14:20 -04:00
parent acd5a94664
commit a0d15779d3

View file

@ -135,7 +135,6 @@ fn main() -> Result<()> {
"\n{} Downloading, installing, and starting ckan-compose...", "\n{} Downloading, installing, and starting ckan-compose...",
"5.".if_supports_color(Stdout, |t| t.style(step_style)), "5.".if_supports_color(Stdout, |t| t.style(step_style)),
); );
sh.change_dir(format!("/home/{username}"));
if !std::fs::exists(format!("/home/{username}/ckan-compose"))? { if !std::fs::exists(format!("/home/{username}/ckan-compose"))? {
cmd!(sh, "git clone https://github.com/tino097/ckan-compose.git").run()?; cmd!(sh, "git clone https://github.com/tino097/ckan-compose.git").run()?;
} }
@ -193,7 +192,7 @@ POSTGRES_PASSWORD=pass";
.run()?; .run()?;
println!( println!(
"{}", "{}",
"✅ 6. Installed CKAN 2.11.3 and started running instance." "✅ 6. Installed CKAN 2.11.3."
.if_supports_color(Stdout, |t| t.style(success_style)) .if_supports_color(Stdout, |t| t.style(success_style))
); );
@ -260,10 +259,13 @@ POSTGRES_PASSWORD=pass";
let app_main_section = conf.section_mut(Some("app:main")).unwrap(); let app_main_section = conf.section_mut(Some("app:main")).unwrap();
let mut ckan_plugins = app_main_section.get("ckan.plugins").unwrap().to_string(); let mut ckan_plugins = app_main_section.get("ckan.plugins").unwrap().to_string();
ckan_plugins.push_str(" scheming_datasets"); ckan_plugins.push_str(" scheming_datasets");
app_main_section.insert("ckan.plugins", ckan_plugins); cmd!(sh, "ckan config-tool /etc/ckan/default/ckan.ini -s app:main ckan.plugins={ckan_plugins}").run()?;
app_main_section.insert("scheming.presets", "ckanext.scheming:presets.json"); cmd!(sh, "ckan config-tool /etc/ckan/default/ckan.ini -s app:main scheming.presets=ckanext.scheming:presets.json").run()?;
app_main_section.insert("scheming.dataset_fallback", "false"); cmd!(sh, "ckan config-tool /etc/ckan/default/ckan.ini -s app:main scheming.dataset_fallback=false").run()?;
conf.write_to_file("/etc/ckan/default/ckan.ini")?; // app_main_section.insert("ckan.plugins", ckan_plugins);
// app_main_section.insert("scheming.presets", "ckanext.scheming:presets.json");
// app_main_section.insert("scheming.dataset_fallback", "false");
// conf.write_to_file("/etc/ckan/default/ckan.ini")?;
// Install DataPusher+ // Install DataPusher+
cmd!(sh, "sudo apt install python3-virtualenv python3-dev python3-pip python3-wheel build-essential libxslt1-dev libxml2-dev zlib1g-dev git libffi-dev libpq-dev uchardet -y").run()?; cmd!(sh, "sudo apt install python3-virtualenv python3-dev python3-pip python3-wheel build-essential libxslt1-dev libxml2-dev zlib1g-dev git libffi-dev libpq-dev uchardet -y").run()?;
sh.change_dir("/usr/lib/ckan/default/src"); sh.change_dir("/usr/lib/ckan/default/src");
@ -280,12 +282,14 @@ POSTGRES_PASSWORD=pass";
let app_main_section = conf.section_mut(Some("app:main")).unwrap(); let app_main_section = conf.section_mut(Some("app:main")).unwrap();
let mut ckan_plugins = app_main_section.get("ckan.plugins").unwrap().to_string(); let mut ckan_plugins = app_main_section.get("ckan.plugins").unwrap().to_string();
ckan_plugins.push_str(" datapusher_plus"); ckan_plugins.push_str(" datapusher_plus");
app_main_section.insert("ckan.plugins", ckan_plugins); cmd!(sh, "ckan config-tool /etc/ckan/default/ckan.ini -s app:main ckan.plugins={ckan_plugins}").run()?;
app_main_section.insert( cmd!(sh, "ckan config-tool /etc/ckan/default/ckan.ini -s app:main scheming.dataset_schemas=ckanext.datapusher_plus:dataset-druf.yaml").run()?;
"scheming.dataset_schemas", // app_main_section.insert("ckan.plugins", ckan_plugins);
"ckanext.datapusher_plus:dataset-druf.yaml", // app_main_section.insert(
); // "scheming.dataset_schemas",
conf.write_to_file("/etc/ckan/default/ckan.ini")?; // "ckanext.datapusher_plus:dataset-druf.yaml",
// );
// conf.write_to_file("/etc/ckan/default/ckan.ini")?;
let dpp_default_config = r#" let dpp_default_config = r#"
ckanext.datapusher_plus.use_proxy = false ckanext.datapusher_plus.use_proxy = false
ckanext.datapusher_plus.download_proxy = ckanext.datapusher_plus.download_proxy =
@ -335,7 +339,6 @@ ckanext.datapusher_plus.file_bin = /usr/bin/file
ckanext.datapusher_plus.enable_druf = true ckanext.datapusher_plus.enable_druf = true
ckanext.datapusher_plus.enable_form_redirect = true ckanext.datapusher_plus.enable_form_redirect = true
"#; "#;
std::fs::write("dpp_default_config.ini", dpp_default_config)?; std::fs::write("dpp_default_config.ini", dpp_default_config)?;
cmd!( cmd!(
sh, sh,
@ -361,9 +364,7 @@ ckanext.datapusher_plus.enable_form_redirect = true
"/usr/lib/ckan/default/src/ckan/config/resource_formats.json", "/usr/lib/ckan/default/src/ckan/config/resource_formats.json",
serde_json::to_string(&resource_formats_val)?, serde_json::to_string(&resource_formats_val)?,
)?; )?;
// let token_command_output = cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini user token add {username} dpplus | tail -n 1 | tr -d '\t'").read()?; cmd!(sh, "sudo locale-gen").run()?;
// let dpp_api_token = duct::cmd!("tr", "-d", "'\t").stdin_bytes(duct::cmd!("tail", "-n", "1").stdin_bytes(token_command_output)).read()?;
cmd!(sh, "sudo locale-gen en_US.UTF-8").run()?;
cmd!(sh, "sudo update-locale").run()?; cmd!(sh, "sudo update-locale").run()?;
let token_command_output = cmd!( let token_command_output = cmd!(
sh, sh,