diff --git a/Cargo.lock b/Cargo.lock index c9bd4e05985..742cd222a60 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7107,6 +7107,7 @@ name = "upgrade-version" version = "0.1.0" dependencies = [ "anyhow", + "chrono", "clap 4.5.37", "duct", "regex", diff --git a/tools/upgrade-version/Cargo.toml b/tools/upgrade-version/Cargo.toml index 0104b11200a..2bcc3a7f000 100644 --- a/tools/upgrade-version/Cargo.toml +++ b/tools/upgrade-version/Cargo.toml @@ -9,6 +9,7 @@ license-file = "LICENSE" [dependencies] toml_edit = "0.22.4" anyhow.workspace = true +chrono = { workspace = true, features=["clock"] } clap.workspace = true regex.workspace = true duct.workspace = true diff --git a/tools/upgrade-version/src/main.rs b/tools/upgrade-version/src/main.rs index dcfa132cbe6..7001573de51 100644 --- a/tools/upgrade-version/src/main.rs +++ b/tools/upgrade-version/src/main.rs @@ -1,5 +1,6 @@ #![allow(clippy::disallowed_macros)] +use chrono::{Datelike, Local}; use clap::{Arg, Command}; use duct::cmd; use regex::Regex; @@ -11,10 +12,21 @@ use std::path::PathBuf; fn process_license_file(upgrade_version: &str) { let path = "LICENSE.txt"; let file = fs::read_to_string(path).unwrap(); - let re = Regex::new(r"(?m)^(Licensed Work:\s+SpacetimeDB )([\d\.]+)$").unwrap(); - let file = re.replace_all(&file, |caps: ®ex::Captures| { + + let version_re = Regex::new(r"(?m)^(Licensed Work:\s+SpacetimeDB )([\d\.]+)$").unwrap(); + let file = version_re.replace_all(&file, |caps: ®ex::Captures| { format!("{}{}", &caps[1], upgrade_version) }); + + let date_re = Regex::new(r"(?m)^Change Date:\s+\d{4}-\d{2}-\d{2}$").unwrap(); + let new_date = Local::now() + .with_year(Local::now().year() + 5) + .unwrap() + .format("Change Date: %Y-%m-%d") + .to_string(); + + let file = date_re.replace_all(&file, new_date.as_str()); + fs::write(path, &*file).unwrap(); }