get cli working again

This commit is contained in:
beckerinj
2022-12-14 12:55:02 -05:00
parent 38be2c53e7
commit e31515f6fd
3 changed files with 63 additions and 23 deletions
Generated
+8 -8
View File
@@ -1699,9 +1699,9 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
[[package]]
name = "proc-macro2"
version = "1.0.44"
version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bd7356a8122b6c4a24a82b278680c73357984ca2fc79a0f9fa6dea7dced7c58"
checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
dependencies = [
"unicode-ident",
]
@@ -1996,9 +1996,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
version = "1.0.145"
version = "1.0.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91"
dependencies = [
"serde_derive",
]
@@ -2014,9 +2014,9 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.145"
version = "1.0.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e"
dependencies = [
"proc-macro2",
"quote",
@@ -2204,9 +2204,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
version = "1.0.100"
version = "1.0.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e"
checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
dependencies = [
"proc-macro2",
"quote",
+53 -13
View File
@@ -1,6 +1,8 @@
use std::{
fs::{self, File},
io::{Read, Write}, path::PathBuf, str::FromStr,
io::{Read, Write},
path::PathBuf,
str::FromStr,
};
use async_timing_util::Timelength;
@@ -68,7 +70,10 @@ pub fn gen_core_config(sub_matches: &ArgMatches) {
write_to_toml(&path, &config);
println!("\n{} has been generated at {path}\n", "core config".bold());
println!(
"\n{} has been generated at {path}\n",
"core config".bold()
);
}
pub fn start_mongo(sub_matches: &ArgMatches) {
@@ -76,11 +81,17 @@ pub fn start_mongo(sub_matches: &ArgMatches) {
let password = sub_matches.get_one::<String>("password");
if (username.is_some() && password.is_none()) {
println!("\n❌ must provide {} if username is provided ❌\n", "--password".bold());
println!(
"\n❌ must provide {} if username is provided ❌\n",
"--password".bold()
);
return;
}
if (username.is_none() && password.is_some()) {
println!("\n❌ must provide {} if password is provided ❌\n", "--username".bold());
println!(
"\n❌ must provide {} if password is provided ❌\n",
"--username".bold()
);
return;
}
@@ -124,7 +135,12 @@ pub fn start_mongo(sub_matches: &ArgMatches) {
println!("{}: {mount}", "mount".dimmed());
println!("{}: {network}", "network".dimmed());
println!("\npress {} to start {}. {}", "ENTER".green().bold(), "MongoDB".bold(), "(ctrl-c to cancel)".dimmed());
println!(
"\npress {} to start {}. {}",
"ENTER".green().bold(),
"MongoDB".bold(),
"(ctrl-c to cancel)".dimmed()
);
let buffer = &mut [0u8];
let res = std::io::stdin().read_exact(buffer);
@@ -168,13 +184,21 @@ pub fn start_core(sub_matches: &ArgMatches) {
.map(|p| p.as_str())
.unwrap_or("bridge");
println!("\n===================\n {} \n===================\n", "core config".bold());
println!(
"\n===================\n {} \n===================\n",
"core config".bold()
);
println!("{}: {name}", "container name".dimmed());
println!("{}: {config_path}", "config path".dimmed());
println!("{}: {port}", "port".dimmed());
println!("{}: {network}", "network".dimmed());
println!("\npress {} to start {}. {}", "ENTER".green().bold(), "monitor core".bold(), "(ctrl-c to cancel)".dimmed());
println!(
"\npress {} to start {}. {}",
"ENTER".green().bold(),
"monitor core".bold(),
"(ctrl-c to cancel)".dimmed()
);
let buffer = &mut [0u8];
let res = std::io::stdin().read_exact(buffer);
@@ -198,7 +222,7 @@ pub fn gen_periphery_config(sub_matches: &ArgMatches) {
let path = sub_matches
.get_one::<String>("path")
.map(|p| p.as_str())
.unwrap_or("~/.monitor/periphery.config.toml")
.unwrap_or("$HOME/.monitor/periphery.config.toml")
.to_string();
let port = sub_matches
@@ -218,7 +242,10 @@ pub fn gen_periphery_config(sub_matches: &ArgMatches) {
write_to_toml(&path, &config);
println!("\n{} generated at {path}\n", "periphery config".bold());
println!(
"\n{} generated at {path}\n",
"periphery config".bold()
);
}
pub fn start_periphery(sub_matches: &ArgMatches) {
@@ -251,14 +278,22 @@ pub fn start_periphery(sub_matches: &ArgMatches) {
.map(|p| p.as_str())
.unwrap_or("bridge");
println!("\n========================\n {} \n========================\n", "periphery config".bold());
println!(
"\n========================\n {} \n========================\n",
"periphery config".bold()
);
println!("{}: {name}", "container name".dimmed());
println!("{}: {config_path}", "config path".dimmed());
println!("{}: {repo_dir}", "repo folder".dimmed());
println!("{}: {port}", "port".dimmed());
println!("{}: {network}", "network".dimmed());
println!("\npress {} to start {}. {}", "ENTER".green().bold(), "monitor periphery".bold(), "(ctrl-c to cancel)".dimmed());
println!(
"\npress {} to start {}. {}",
"ENTER".green().bold(),
"monitor periphery".bold(),
"(ctrl-c to cancel)".dimmed()
);
let buffer = &mut [0u8];
let res = std::io::stdin().read_exact(buffer);
@@ -272,14 +307,19 @@ pub fn start_periphery(sub_matches: &ArgMatches) {
let output = run_command_pipe_to_terminal(&command);
if output.success() {
println!("\n{} has been started up ✅\n", "monitor periphery".bold())
println!(
"\n{} has been started up ✅\n",
"monitor periphery".bold()
)
} else {
eprintln!("\n❌ there was some {} on startup ❌\n", "error".red())
}
}
fn write_to_toml(path: &str, toml: impl Serialize) {
let path = PathBuf::from_str(path).expect("not a valid path");
let path = PathBuf::from_str(&path.replace("$HOME", &std::env::var("HOME").unwrap()))
.expect("not a valid path");
println!("is absolute: {}", path.is_absolute());
println!("{}", path.display());
let _ = fs::create_dir_all(pop_path(&path));
fs::write(
+2 -2
View File
@@ -1,7 +1,7 @@
use std::collections::HashMap;
use async_timing_util::Timelength;
use serde::{Serialize, Deserialize};
use serde_derive::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct CoreConfig {
@@ -86,4 +86,4 @@ fn default_periphery_port() -> u16 {
fn default_repo_dir() -> String {
"/repos".to_string()
}
}