ref(conf): rework cli command
This commit is contained in:
parent
3971214821
commit
838d817ab0
3 changed files with 32 additions and 39 deletions
30
Cargo.lock
generated
30
Cargo.lock
generated
|
@ -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",
|
||||
|
|
|
@ -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"] }
|
||||
|
|
|
@ -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!()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue