diff --git a/Cargo.lock b/Cargo.lock index a6250ca..6895cb1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -760,7 +760,7 @@ dependencies = [ [[package]] name = "duniter-bc-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "anyhow", "dubp", @@ -806,7 +806,7 @@ dependencies = [ [[package]] name = "duniter-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "anyhow", "dubp", @@ -819,7 +819,7 @@ dependencies = [ [[package]] name = "duniter-core" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "duniter-bc-reader", "duniter-conf", @@ -827,13 +827,12 @@ dependencies = [ "duniter-global", "duniter-mempools", "duniter-module", - "duniter-module-cli", ] [[package]] name = "duniter-dbs" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "arrayvec", "bincode", @@ -856,7 +855,7 @@ dependencies = [ [[package]] name = "duniter-dbs-write-ops" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "chrono", "dubp", @@ -871,7 +870,7 @@ dependencies = [ [[package]] name = "duniter-global" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "async-rwlock", "dubp", @@ -920,6 +919,7 @@ dependencies = [ name = "duniter-gva-conf" version = "0.1.0" dependencies = [ + "anyhow", "duniter-core", "read_input", "serde", @@ -1001,7 +1001,7 @@ dependencies = [ [[package]] name = "duniter-mempools" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "dubp", "duniter-bc-reader", @@ -1014,7 +1014,7 @@ dependencies = [ [[package]] name = "duniter-module" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "anyhow", "async-mutex", @@ -1031,16 +1031,6 @@ dependencies = [ "serde", ] -[[package]] -name = "duniter-module-cli" -version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" -dependencies = [ - "anyhow", - "serde", - "structopt", -] - [[package]] name = "dup-crypto" version = "0.53.1" @@ -1594,7 +1584,7 @@ dependencies = [ [[package]] name = "kv_typed" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#085ca88dd1d3045d5512e2398c099510938d5a20" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#06f484b17a8336ec908ef423f32cbd0a5a0f16f5" dependencies = [ "byteorder", "cfg-if 0.1.10", diff --git a/conf/Cargo.toml b/conf/Cargo.toml index b0b9fd0..7540baa 100644 --- a/conf/Cargo.toml +++ b/conf/Cargo.toml @@ -11,6 +11,7 @@ edition = "2018" path = "src/lib.rs" [dependencies] +anyhow = "1.0" duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" } read_input = "0.8" serde = { version = "1.0.105", features = ["derive"] } diff --git a/conf/src/lib.rs b/conf/src/lib.rs index 5773014..11594fd 100644 --- a/conf/src/lib.rs +++ b/conf/src/lib.rs @@ -13,7 +13,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -use duniter_core::module_cli::anyhow; +use anyhow::Context; use read_input::prelude::*; use serde::{Deserialize, Serialize}; use std::{ @@ -22,6 +22,8 @@ use std::{ }; use structopt::StructOpt; +const MODULE_NAME: &str = "gva"; + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct GvaConf { pub enabled: bool, @@ -101,21 +103,29 @@ impl GvaConf { } #[derive(StructOpt)] -pub struct GvaCli {} +pub enum GvaCommand { + Configure, +} -#[derive(StructOpt)] -pub struct GvaCliConfigure {} +impl GvaCommand { + pub fn command(self, profile_path: std::path::PathBuf) -> anyhow::Result<()> { + match self { + GvaCommand::Configure => { + let gva_conf = + duniter_core::conf::load_module_conf(MODULE_NAME, &Some(profile_path.clone())) + .context("fail to load gva conf")?; -impl duniter_core::module_cli::DuniterModuleCli for GvaCli { - const MODULE_NAME: &'static str = "gva"; + let new_gva_conf = GvaCommand::configure(gva_conf); - type Conf = GvaConf; + duniter_core::conf::write_module_conf(new_gva_conf, MODULE_NAME, &profile_path) + .context("fail to write gva conf")?; + } + } - type ConfigureOpt = GvaCliConfigure; + Ok(()) + } - type Opt = Self; - - fn configure(mut conf: Self::Conf, _: Self::ConfigureOpt) -> Self::Conf { + fn configure(mut conf: GvaConf) -> GvaConf { // Enable GVA API? let res = input().msg("Enable GVA API? [Y/n]").default('Y').get(); conf.enabled = res != 'n'; @@ -244,12 +254,4 @@ impl duniter_core::module_cli::DuniterModuleCli for GvaCli { conf } - - fn command( - _conf: Self::Conf, - _opt: Self::Opt, - _data_path: std::path::PathBuf, - ) -> anyhow::Result<()> { - unimplemented!() - } }