From d60b3fbf8d1840e5a1b5b088333e136616068c15 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 4 Apr 2021 12:30:52 +0300 Subject: feat: set version in debian/changelog --- src/project.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/project.rs') diff --git a/src/project.rs b/src/project.rs index 7471c66..9f45363 100644 --- a/src/project.rs +++ b/src/project.rs @@ -1,25 +1,37 @@ +use crate::debian::Debian; use crate::errors::BumperError; use crate::rust::Rust; use std::path::Path; pub enum ProjectKind { Rust(Rust), + Debian(Debian), } impl ProjectKind { - pub fn detect>(dirname: P) -> Result { + pub fn detect>(dirname: P) -> Result, BumperError> { let dirname = dirname.as_ref(); + let mut kinds = vec![]; if let Ok(p) = Rust::new(dirname) { - return Ok(Self::Rust(p)); + kinds.push(ProjectKind::Rust(p)); } - Err(BumperError::UnknownProjectKind(dirname.to_path_buf())) + if let Ok(p) = Debian::new(dirname) { + kinds.push(ProjectKind::Debian(p)); + } + + if kinds.is_empty() { + Err(BumperError::UnknownProjectKind(dirname.to_path_buf())) + } else { + Ok(kinds) + } } pub fn set_version(&mut self, version: &str) -> Result<(), BumperError> { match self { Self::Rust(ref mut rust) => rust.set_version(version)?, + Self::Debian(ref mut debian) => debian.set_version(version)?, } Ok(()) } -- cgit v1.2.1