/ src / implementations / swift.rs
swift.rs
 1  use crate::utils::{open_readme, read_file, write_file};
 2  use crate::{git, version::DEFAULT};
 3  use anyhow::Result;
 4  
 5  pub const PACKAGE_SWIFT: &str = "Package.swift";
 6  
 7  pub fn get_current_version() -> String {
 8    let tags = git::tags();
 9  
10    if let Some(latest) = tags.first() {
11      latest.to_string()
12    }
13    else {
14      DEFAULT.into()
15    }
16  }
17  
18  fn bump_readme(old_version: &str, new_version: &str) -> Result<()> {
19    let mut file = open_readme()?;
20    let content = read_file(&mut file)?;
21  
22    // replace for installation section
23    let from = format!("from: \"{old_version}\"");
24    let to = format!("from: \"{new_version}\"");
25    let content = content.replace(&from, &to);
26  
27    write_file(&mut file, content)?;
28  
29    Ok(())
30  }
31  
32  pub fn bump_version(new_version: &str) -> Result<()> {
33    let old_version = get_current_version();
34  
35    bump_readme(&old_version, new_version)?;
36  
37    Ok(())
38  }