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 {
|
||||
filter: Option<String>,
|
||||
root: bool,
|
||||
},
|
||||
Clean,
|
||||
Logs {
|
||||
|
|
@ -45,7 +46,7 @@ pub enum HazeArgs {
|
|||
impl HazeArgs {
|
||||
pub fn parse<I, S>(mut args: I) -> Result<HazeArgs>
|
||||
where
|
||||
S: AsRef<str> + Into<String> + Display,
|
||||
S: AsRef<str> + Into<String> + Display + PartialEq<str>,
|
||||
I: Iterator<Item = S>,
|
||||
{
|
||||
let _bin = args.next();
|
||||
|
|
@ -101,7 +102,10 @@ impl HazeArgs {
|
|||
filter,
|
||||
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::Logs => {
|
||||
let mut args = args.peekable();
|
||||
|
|
@ -197,7 +201,8 @@ fn test_arg_parse() {
|
|||
assert_eq!(
|
||||
HazeArgs::parse(vec!["haze", "asdasd", "db"].into_iter()).unwrap(),
|
||||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string())
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: false
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ impl Database {
|
|||
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() {
|
||||
DatabaseFamily::Sqlite => {
|
||||
exec_tty(
|
||||
|
|
@ -226,7 +226,13 @@ impl Database {
|
|||
docker,
|
||||
format!("{}-db", cloud_id),
|
||||
"mysql",
|
||||
vec!["mysql", "-u", "haze", "-phaze", "haze"],
|
||||
vec![
|
||||
"mysql",
|
||||
"-u",
|
||||
if root { "root" } else { "haze" },
|
||||
"-phaze",
|
||||
"haze",
|
||||
],
|
||||
vec![],
|
||||
)
|
||||
.await
|
||||
|
|
|
|||
|
|
@ -133,9 +133,9 @@ async fn main() -> Result<()> {
|
|||
command.insert(0, "occ".to_string());
|
||||
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?;
|
||||
cloud.db.exec(&mut docker, &cloud.id).await?;
|
||||
cloud.db.exec(&mut docker, &cloud.id, root).await?;
|
||||
}
|
||||
HazeArgs::Open { filter } => {
|
||||
let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue