Use getter methods which actually expand tilde

This commit is contained in:
dadav 2021-05-04 17:25:36 +02:00
parent 8930ecb3ac
commit e47ff90b98
10 changed files with 57 additions and 18 deletions

47
Cargo.lock generated
View file

@ -522,6 +522,16 @@ dependencies = [
"dirs-sys",
]
[[package]]
name = "dirs-next"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
dependencies = [
"cfg-if 1.0.0",
"dirs-sys-next",
]
[[package]]
name = "dirs-sys"
version = "0.3.5"
@ -529,7 +539,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
dependencies = [
"libc",
"redox_users",
"redox_users 0.3.5",
"winapi",
]
[[package]]
name = "dirs-sys-next"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
dependencies = [
"libc",
"redox_users 0.4.0",
"winapi",
]
@ -1169,9 +1190,7 @@ dependencies = [
[[package]]
name = "pueue-lib"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea6a783c0a5fc95659ca58696f56f4c0c8e07053b367a65b74440524a5d19aa"
version = "0.12.3"
dependencies = [
"anyhow",
"async-std",
@ -1191,6 +1210,7 @@ dependencies = [
"serde_derive",
"serde_json",
"serde_yaml",
"shellexpand",
"snap",
"strum_macros",
"whoami",
@ -1289,6 +1309,16 @@ dependencies = [
"rust-argon2",
]
[[package]]
name = "redox_users"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [
"getrandom 0.2.2",
"redox_syscall 0.2.5",
]
[[package]]
name = "regex"
version = "1.4.5"
@ -1445,6 +1475,15 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
[[package]]
name = "shellexpand"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83bdb7831b2d85ddf4a7b148aa19d0587eddbe8671a436b7bd1182eaad0f2829"
dependencies = [
"dirs-next",
]
[[package]]
name = "signal-hook"
version = "0.1.17"

View file

@ -23,8 +23,8 @@ name = "pueued"
path = "daemon/main.rs"
[dependencies]
pueue-lib = "0.12.2"
#pueue-lib = { path = "../pueue-lib" }
pueue-lib = "0.12.3"
# pueue-lib = { path = "../pueue-lib" }
anyhow = "1"
chrono = { version = "0.4", features = ["serde"] }

View file

@ -45,7 +45,7 @@ impl Client {
// Send the secret to the daemon
// In case everything was successful, we get a short `hello` response from the daemon.
let secret = read_shared_secret(&settings.shared.shared_secret_path)?;
let secret = read_shared_secret(&settings.shared.shared_secret_path())?;
send_bytes(&secret, &mut stream).await?;
let hello = receive_bytes(&mut stream).await?;
if hello != b"hello" {
@ -160,7 +160,7 @@ impl Client {
if self.settings.client.read_local_logs {
local_follow(
&mut self.stream,
&self.settings.shared.pueue_directory,
&self.settings.shared.pueue_directory(),
task_id,
*err,
)

View file

@ -189,7 +189,7 @@ fn print_task_info(task: &Task, colors: &Colors) {
/// If that's the case, read the log files from the local pueue directory
fn print_local_log(task_id: usize, colors: &Colors, settings: &Settings, lines: Option<usize>) {
let (mut stdout_file, mut stderr_file) =
match get_log_file_handles(task_id, &settings.shared.pueue_directory) {
match get_log_file_handles(task_id, &settings.shared.pueue_directory()) {
Ok((stdout, stderr)) => (stdout, stderr),
Err(err) => {
println!("Failed to get log file handles: {}", err);

View file

@ -61,11 +61,11 @@ async fn main() -> Result<()> {
}
};
init_directories(&settings.shared.pueue_directory);
if !settings.shared.daemon_key.exists() && !settings.shared.daemon_cert.exists() {
init_directories(&settings.shared.pueue_directory());
if !settings.shared.daemon_key().exists() && !settings.shared.daemon_cert().exists() {
create_certificates(&settings)?;
}
init_shared_secret(&settings.shared.shared_secret_path)?;
init_shared_secret(&settings.shared.shared_secret_path())?;
let mut state = State::new(&settings, opt.config.clone());
// Restore the previous state and save any changes that might have happened during this process

View file

@ -24,7 +24,7 @@ pub fn clean(message: CleanMessage, state: &SharedState) -> Message {
}
}
let _ = state.tasks.remove(task_id).unwrap();
clean_log_handles(*task_id, &state.settings.shared.pueue_directory);
clean_log_handles(*task_id, &state.settings.shared.pueue_directory());
}
state.save();

View file

@ -40,7 +40,7 @@ pub fn get_log(message: LogRequestMessage, state: &SharedState) -> Message {
let (stdout, stderr) = if message.send_logs {
match read_and_compress_log_files(
*task_id,
&state.settings.shared.pueue_directory,
&state.settings.shared.pueue_directory(),
lines,
) {
Ok((stdout, stderr)) => (Some(stdout), Some(stderr)),

View file

@ -30,7 +30,7 @@ pub fn remove(task_ids: Vec<usize>, state: &SharedState) -> Message {
for task_id in &not_running {
state.tasks.remove(task_id);
clean_log_handles(*task_id, &state.settings.shared.pueue_directory);
clean_log_handles(*task_id, &state.settings.shared.pueue_directory());
}
let text = "Tasks removed from list";

View file

@ -22,7 +22,7 @@ pub async fn accept_incoming(sender: Sender<Message>, state: SharedState) -> Res
state.settings.shared.clone()
};
let listener = get_listener(&shared_settings).await?;
let secret = read_shared_secret(&shared_settings.shared_secret_path)?;
let secret = read_shared_secret(&shared_settings.shared_secret_path())?;
loop {
// Poll incoming connections.
@ -88,7 +88,7 @@ async fn handle_incoming(
// locking the state in the streaming loop.
let pueue_directory = {
let state = state.lock().unwrap();
state.settings.shared.pueue_directory.clone()
state.settings.shared.pueue_directory().clone()
};
loop {

View file

@ -48,7 +48,7 @@ impl TaskHandler {
let (pueue_directory, callback) = {
let state = state.lock().unwrap();
(
state.settings.shared.pueue_directory.clone(),
state.settings.shared.pueue_directory().clone(),
state.settings.daemon.callback.clone(),
)
};