kjuulh
5fd902f87c
All checks were successful
continuous-integration/drone/push Build is passing
Allows commit bodies to show up in release notes, this is something I'd prefer as my releases are usually short, and I'd like to see these as I don't use pull requests as often, and often miss the context, as I don't link to commits currently. Also fixes a lot of warnings and reintroduces failing tests, still not perfect, but better than before. Co-authored-by: kjuulh <contact@kjuulh.io> Co-committed-by: kjuulh <contact@kjuulh.io>
61 lines
1.6 KiB
Rust
61 lines
1.6 KiB
Rust
use std::path::PathBuf;
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[allow(dead_code)]
|
|
pub struct UpdateOptions {
|
|
next_version: String,
|
|
global_changelog: String,
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
pub type Projects = Vec<Project>;
|
|
|
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
|
pub struct Project {
|
|
path: Option<PathBuf>,
|
|
r#type: ProjectType,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
|
#[serde(tag = "type")]
|
|
pub enum ProjectType {
|
|
#[cfg(feature = "rust-workspace")]
|
|
#[serde(alias = "rust_workspace")]
|
|
RustWorkspace,
|
|
#[cfg(feature = "rust-crate")]
|
|
#[serde(alias = "rust_crate")]
|
|
RustCrate,
|
|
#[cfg(feature = "toml-edit")]
|
|
#[serde(alias = "toml_edit")]
|
|
TomlEdit,
|
|
#[cfg(feature = "yaml-edit")]
|
|
#[serde(alias = "yaml_edit")]
|
|
YamlEdit,
|
|
#[cfg(feature = "json-edit")]
|
|
#[serde(alias = "json_edit")]
|
|
JsonEdit,
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
impl Project {
|
|
pub fn new(path: Option<PathBuf>, r#type: ProjectType) -> Self {
|
|
Self { path, r#type }
|
|
}
|
|
|
|
pub fn execute(&self, _options: &UpdateOptions) -> anyhow::Result<()> {
|
|
match self.r#type {
|
|
#[cfg(feature = "rust-workspace")]
|
|
ProjectType::RustWorkspace => todo!(),
|
|
#[cfg(feature = "rust-crate")]
|
|
ProjectType::RustCrate => todo!(),
|
|
#[cfg(feature = "toml-edit")]
|
|
ProjectType::TomlEdit => todo!(),
|
|
#[cfg(feature = "yaml-edit")]
|
|
ProjectType::YamlEdit => todo!(),
|
|
#[cfg(feature = "json-edit")]
|
|
ProjectType::JsonEdit => todo!(),
|
|
}
|
|
}
|
|
}
|