mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-03 17:14:08 +02:00
allow connecting to mysql db as root
This commit is contained in:
parent
96950e6d06
commit
8614a3e875
3 changed files with 18 additions and 7 deletions
11
src/args.rs
11
src/args.rs
|
|
@ -30,6 +30,7 @@ pub enum HazeArgs {
|
||||||
},
|
},
|
||||||
Db {
|
Db {
|
||||||
filter: Option<String>,
|
filter: Option<String>,
|
||||||
|
root: bool,
|
||||||
},
|
},
|
||||||
Clean,
|
Clean,
|
||||||
Logs {
|
Logs {
|
||||||
|
|
@ -45,7 +46,7 @@ pub enum HazeArgs {
|
||||||
impl HazeArgs {
|
impl HazeArgs {
|
||||||
pub fn parse<I, S>(mut args: I) -> Result<HazeArgs>
|
pub fn parse<I, S>(mut args: I) -> Result<HazeArgs>
|
||||||
where
|
where
|
||||||
S: AsRef<str> + Into<String> + Display,
|
S: AsRef<str> + Into<String> + Display + PartialEq<str>,
|
||||||
I: Iterator<Item = S>,
|
I: Iterator<Item = S>,
|
||||||
{
|
{
|
||||||
let _bin = args.next();
|
let _bin = args.next();
|
||||||
|
|
@ -101,7 +102,10 @@ impl HazeArgs {
|
||||||
filter,
|
filter,
|
||||||
command: args.map(S::into).collect(),
|
command: args.map(S::into).collect(),
|
||||||
}),
|
}),
|
||||||
HazeCommand::Db => Ok(HazeArgs::Db { filter }),
|
HazeCommand::Db => Ok(HazeArgs::Db {
|
||||||
|
filter,
|
||||||
|
root: args.next().filter(|arg| arg == "root").is_some(),
|
||||||
|
}),
|
||||||
HazeCommand::Clean => Ok(HazeArgs::Clean),
|
HazeCommand::Clean => Ok(HazeArgs::Clean),
|
||||||
HazeCommand::Logs => {
|
HazeCommand::Logs => {
|
||||||
let mut args = args.peekable();
|
let mut args = args.peekable();
|
||||||
|
|
@ -197,7 +201,8 @@ fn test_arg_parse() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
HazeArgs::parse(vec!["haze", "asdasd", "db"].into_iter()).unwrap(),
|
HazeArgs::parse(vec!["haze", "asdasd", "db"].into_iter()).unwrap(),
|
||||||
HazeArgs::Db {
|
HazeArgs::Db {
|
||||||
filter: Some("asdasd".to_string())
|
filter: Some("asdasd".to_string()),
|
||||||
|
root: false
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|
|
||||||
|
|
@ -209,7 +209,7 @@ impl Database {
|
||||||
Ok(Some(id))
|
Ok(Some(id))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn exec(&self, docker: &mut Docker, cloud_id: &str) -> Result<i64> {
|
pub async fn exec(&self, docker: &mut Docker, cloud_id: &str, root: bool) -> Result<i64> {
|
||||||
match self.family() {
|
match self.family() {
|
||||||
DatabaseFamily::Sqlite => {
|
DatabaseFamily::Sqlite => {
|
||||||
exec_tty(
|
exec_tty(
|
||||||
|
|
@ -226,7 +226,13 @@ impl Database {
|
||||||
docker,
|
docker,
|
||||||
format!("{}-db", cloud_id),
|
format!("{}-db", cloud_id),
|
||||||
"mysql",
|
"mysql",
|
||||||
vec!["mysql", "-u", "haze", "-phaze", "haze"],
|
vec![
|
||||||
|
"mysql",
|
||||||
|
"-u",
|
||||||
|
if root { "root" } else { "haze" },
|
||||||
|
"-phaze",
|
||||||
|
"haze",
|
||||||
|
],
|
||||||
vec![],
|
vec![],
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
|
|
|
||||||
|
|
@ -133,9 +133,9 @@ async fn main() -> Result<()> {
|
||||||
command.insert(0, "occ".to_string());
|
command.insert(0, "occ".to_string());
|
||||||
cloud.exec(&mut docker, command, true).await?;
|
cloud.exec(&mut docker, command, true).await?;
|
||||||
}
|
}
|
||||||
HazeArgs::Db { filter } => {
|
HazeArgs::Db { filter, root } => {
|
||||||
let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?;
|
let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?;
|
||||||
cloud.db.exec(&mut docker, &cloud.id).await?;
|
cloud.db.exec(&mut docker, &cloud.id, root).await?;
|
||||||
}
|
}
|
||||||
HazeArgs::Open { filter } => {
|
HazeArgs::Open { filter } => {
|
||||||
let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?;
|
let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue