kjuulh
c03f351d81
All checks were successful
continuous-integration/drone/push Build is passing
Signed-off-by: kjuulh <contact@kjuulh.io>
32 lines
772 B
Rust
32 lines
772 B
Rust
use serde::Deserialize;
|
|
|
|
#[derive(Deserialize, Clone, Debug)]
|
|
pub struct Workspace {
|
|
pub members: Vec<String>,
|
|
}
|
|
|
|
#[derive(Deserialize, Clone, Debug)]
|
|
pub struct File {
|
|
pub workspace: Option<Workspace>,
|
|
}
|
|
|
|
impl File {
|
|
pub async fn read_file() -> eyre::Result<Option<Self>> {
|
|
let file = match tokio::fs::read_to_string("Cargo.toml").await {
|
|
Ok(file) => file,
|
|
Err(e) => {
|
|
tracing::warn!("Cargo.toml was not found: {}", e);
|
|
return Ok(None);
|
|
}
|
|
};
|
|
|
|
let workspace_file: File = toml::from_str(&file)?;
|
|
|
|
Ok(Some(workspace_file))
|
|
}
|
|
|
|
pub fn get_workspace_members(&self) -> Option<Vec<String>> {
|
|
self.workspace.as_ref().map(|w| w.members.clone())
|
|
}
|
|
}
|