Working on peach-config
This commit is contained in:
parent
6621a09ec9
commit
f002f5cf3e
|
@ -2204,6 +2204,7 @@ version = "0.1.25"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"env_logger 0.6.2",
|
"env_logger 0.6.2",
|
||||||
|
"golgi",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"log 0.4.17",
|
"log 0.4.17",
|
||||||
"peach-lib",
|
"peach-lib",
|
||||||
|
|
|
@ -37,3 +37,4 @@ log = "0.4"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
peach-lib = { path = "../peach-lib" }
|
peach-lib = { path = "../peach-lib" }
|
||||||
rpassword = "5.0"
|
rpassword = "5.0"
|
||||||
|
golgi = { git = "https://git.coopcloud.tech/golgi-ssb/golgi.git" }
|
||||||
|
|
|
@ -50,6 +50,10 @@ enum PeachConfig {
|
||||||
/// Updates file permissions on PeachCloud device
|
/// Updates file permissions on PeachCloud device
|
||||||
#[structopt(name = "permissions")]
|
#[structopt(name = "permissions")]
|
||||||
SetPermissions,
|
SetPermissions,
|
||||||
|
|
||||||
|
/// Returns sbot id if sbot is running
|
||||||
|
#[structopt(name = "whoami")]
|
||||||
|
WhoAmI,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(StructOpt, Debug)]
|
#[derive(StructOpt, Debug)]
|
||||||
|
@ -155,6 +159,12 @@ fn main() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
PeachConfig::WhoAmI => match status::who_am_i() {
|
||||||
|
Ok(sbot_id) => {sbot_id}
|
||||||
|
Err(err) => {
|
||||||
|
error!("1")
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
use crate::error::PeachConfigError;
|
||||||
|
use crate::ChangePasswordOpts;
|
||||||
|
use peach_lib::password_utils::set_new_password;
|
||||||
|
use peach_lib::sbot::init_sbot;
|
||||||
|
|
||||||
|
use golgi::Sbot;
|
||||||
|
|
||||||
|
/// Utility function to check if sbot is running via the whoami method
|
||||||
|
pub fn whoami() -> Result<bool, PeachConfigError> {
|
||||||
|
let sbot = init_sbot()?;
|
||||||
|
sbot.whoami()
|
||||||
|
}
|
|
@ -256,3 +256,9 @@ impl From<string::FromUtf8Error> for PeachError {
|
||||||
PeachError::Utf8ToString(err)
|
PeachError::Utf8ToString(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<GolgiError> for PeachError {
|
||||||
|
fn from(err: GolgiError) -> PeachError {
|
||||||
|
PeachError::Golgi(err)
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
use std::{fs, fs::File, io, io::Write, path::PathBuf, process::Command, str};
|
use std::{fs, fs::File, io, io::Write, path::PathBuf, process::Command, str};
|
||||||
|
|
||||||
|
use golgi::{
|
||||||
|
api::friends::RelationshipQuery, blobs, messages::SsbMessageValue, sbot::Keystore, Sbot,
|
||||||
|
};
|
||||||
|
use log::debug;
|
||||||
|
|
||||||
use crate::config_manager;
|
use crate::config_manager;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
@ -240,3 +245,26 @@ impl SbotConfig {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Initialise an sbot client
|
||||||
|
pub async fn init_sbot() -> Result<Sbot, PeachError> {
|
||||||
|
|
||||||
|
// read sbot config from config.toml
|
||||||
|
let sbot_config = SbotConfig::read().ok();
|
||||||
|
|
||||||
|
debug!("Initialising an sbot client with configuration parameters");
|
||||||
|
// initialise sbot connection with ip:port and shscap from config file
|
||||||
|
let key_path = format!(
|
||||||
|
"{}/secret",
|
||||||
|
config_manager::get_config_value("GO_SBOT_DATADIR")?
|
||||||
|
);
|
||||||
|
let sbot_client = match sbot_config {
|
||||||
|
// TODO: panics if we pass `Some(conf.shscap)` as second arg
|
||||||
|
Some(conf) => {
|
||||||
|
let ip_port = conf.lis.clone();
|
||||||
|
Sbot::init(Keystore::CustomGoSbot(key_path), Some(ip_port), None).await?
|
||||||
|
}
|
||||||
|
None => Sbot::init(Keystore::CustomGoSbot(key_path), None, None).await?,
|
||||||
|
};
|
||||||
|
Ok(sbot_client)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue