mirror of
https://codeberg.org/icewind/haze.git
synced 2026-10-01 08:44:09 +02:00
allow exec in db
This commit is contained in:
parent
8614a3e875
commit
b46291b0f0
3 changed files with 89 additions and 18 deletions
|
|
@ -5,7 +5,7 @@ use bollard::models::{EndpointSettings, HostConfig};
|
|||
use bollard::Docker;
|
||||
use color_eyre::{eyre::WrapErr, Report, Result};
|
||||
use maplit::hashmap;
|
||||
use std::io::Stdout;
|
||||
use std::io::{stdout, Stdout};
|
||||
use std::str::FromStr;
|
||||
use std::time::Duration;
|
||||
use tokio::time::{sleep, timeout};
|
||||
|
|
@ -209,6 +209,24 @@ impl Database {
|
|||
Ok(Some(id))
|
||||
}
|
||||
|
||||
pub async fn exec_sh<S: Into<String>>(
|
||||
&self,
|
||||
docker: &mut Docker,
|
||||
cloud_id: &str,
|
||||
cmd: Vec<S>,
|
||||
tty: bool,
|
||||
) -> Result<i64> {
|
||||
let container = match self.family() {
|
||||
DatabaseFamily::Sqlite => cloud_id.to_string(),
|
||||
_ => format!("{}-db", cloud_id.to_string()),
|
||||
};
|
||||
if tty {
|
||||
exec_tty(docker, &container, "root", cmd, vec![]).await
|
||||
} else {
|
||||
exec(docker, &container, "root", cmd, vec![], Some(stdout())).await
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn exec(&self, docker: &mut Docker, cloud_id: &str, root: bool) -> Result<i64> {
|
||||
match self.family() {
|
||||
DatabaseFamily::Sqlite => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue