ref(conf): rework cli command

This commit is contained in:
librelois 2021-05-07 13:29:05 +02:00
parent 3971214821
commit 838d817ab0
3 changed files with 32 additions and 39 deletions

30
Cargo.lock generated
View file

@ -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",

View file

@ -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"] }

View file

@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
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!()
}
}