fix: remove unwraps()

update_containers use an if let Some() instead of an unwrtap().to_owned()
This commit is contained in:
Jack Wills
2022-05-30 01:30:24 +00:00
parent 846fb60131
commit d68285a233
+47 -45
View File
@@ -310,54 +310,56 @@ impl AppData {
} }
for i in containers.iter() { for i in containers.iter() {
let id = i.id.as_ref().unwrap().to_owned(); if let Some(id) = i.id.as_ref() {
let mut name = i let mut name = i
.names .names
.as_ref() .as_ref()
.unwrap_or(&vec!["".to_owned()]) .unwrap_or(&vec!["".to_owned()])
.get(0) .get(0)
.unwrap() .unwrap()
.to_owned(); .to_owned();
if let Some(c) = name.chars().next() { if let Some(c) = name.chars().next() {
if c == '/' { if c == '/' {
name.remove(0); name.remove(0);
}
} }
}
let state = State::from(i.state.as_ref().unwrap_or(&"dead".to_owned()).trim()); let state = State::from(i.state.as_ref().unwrap_or(&"dead".to_owned()).trim());
let status = i let status = i
.status .status
.as_ref() .as_ref()
.unwrap_or(&"".to_owned()) .unwrap_or(&"".to_owned())
.trim() .trim()
.to_owned(); .to_owned();
let image = i.image.as_ref().unwrap_or(&"".to_owned()).trim().to_owned(); let image = i.image.as_ref().unwrap_or(&"".to_owned()).trim().to_owned();
if let Some(current_container) = self.get_container_by_id(&id) { if let Some(current_container) = self.get_container_by_id(id) {
if current_container.name != name { if current_container.name != name {
current_container.name = name current_container.name = name
};
if current_container.status != status {
current_container.status = status
};
if current_container.state != state {
current_container.docker_controls.items = DockerControls::gen_vec(&state);
// Update the list state, needs to be None if the gen_vec returns an empty vec
match state {
State::Removing | State::Restarting | State::Unknown => {
current_container.docker_controls.state.select(None)
}
_ => current_container.docker_controls.start(),
}; };
current_container.state = state; if current_container.status != status {
}; current_container.status = status
if current_container.image != image { };
current_container.image = image if current_container.state != state {
}; current_container.docker_controls.items = DockerControls::gen_vec(&state);
} else {
let mut container = ContainerItem::new(id, status, image, state, name); // Update the list state, needs to be None if the gen_vec returns an empty vec
container.logs.end(); match state {
self.containers.items.push(container); State::Removing | State::Restarting | State::Unknown => {
current_container.docker_controls.state.select(None)
}
_ => current_container.docker_controls.start(),
};
current_container.state = state;
};
if current_container.image != image {
current_container.image = image
};
} else {
let mut container =
ContainerItem::new(id.to_owned(), status, image, state, name);
container.logs.end();
self.containers.items.push(container);
}
} }
} }
} }