summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBao, Huang-Huang <i@eh5.me>2021-03-12 22:30:25 +0800
committerGitHub <noreply@github.com>2021-03-12 15:30:25 +0100
commit8f46dff9dcae01f38057b25c939f0fb92c13c7b4 (patch)
treeb5ff319fbf634b94f009e63c9e1249f9316ed29f
parenta2e7f6947fa6cfabb201daa0beebcb77a0d5bbfc (diff)
fix(package): fix meson version extraction if 'meson_version' is present (#2397)
-rw-r--r--src/modules/package.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/modules/package.rs b/src/modules/package.rs
index 14e7f38d6..909998d7b 100644
--- a/src/modules/package.rs
+++ b/src/modules/package.rs
@@ -165,7 +165,7 @@ fn extract_maven_version(file_contents: &str) -> Option<String> {
fn extract_meson_version(file_contents: &str) -> Option<String> {
let file_contents = file_contents.split_ascii_whitespace().collect::<String>();
- let re = Regex::new(r#"project\([^())]*version:'(?P<version>[^']+)'[^())]*\)"#).unwrap();
+ let re = Regex::new(r#"project\([^())]*,version:'(?P<version>[^']+)'[^())]*\)"#).unwrap();
let caps = re.captures(&file_contents)?;
let formatted_version = format_version(&caps["version"]);
@@ -756,6 +756,18 @@ end";
project_dir.close()
}
+ #[test]
+ fn test_extract_meson_version_with_meson_version() -> io::Result<()> {
+ let config_name = "meson.build";
+ let config_content =
+ "project('starship', 'rust', version: '0.1.0', meson_version: '>= 0.57.0')".to_string();
+
+ let project_dir = create_project_dir()?;
+ fill_config(&project_dir, config_name, Some(&config_content))?;
+ expect_output(&project_dir, Some("v0.1.0"), None);
+ project_dir.close()
+ }
+
fn create_project_dir() -> io::Result<TempDir> {
tempfile::tempdir()
}