diff options
author | Milo <50248166+Milo123459@users.noreply.github.com> | 2021-05-03 20:50:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-03 21:50:29 +0200 |
commit | 48f913ec2309c8fa1f3c012e5aa33f7df0f6e0ad (patch) | |
tree | d0a54a5cd27b2f43685812b967cf62b6e407f4a6 /src/modules/package.rs | |
parent | dead06ba14e30803f0027be8d46cc1f395d5d87e (diff) |
feat(vlang): create module (#2577)
* Add V module
* Format
* Fix tests
* fix typo
* Update src/configs/v.rs
Co-authored-by: Dario Vladović <d.vladimyr@gmail.com>
* Update docs/config/README.md
Co-authored-by: Dario Vladović <d.vladimyr@gmail.com>
* Update docs/config/README.md
Co-authored-by: Dario Vladović <d.vladimyr@gmail.com>
* Update docs/config/README.md
Co-authored-by: Dario Vladović <d.vladimyr@gmail.com>
* Use blue bold
* v -> vlang
* change docs
* More vlang fixes
* add package support for v
* Update docs/config/README.md
Co-authored-by: Dario Vladović <d.vladimyr@gmail.com>
* use regex
* Update src/configs/mod.rs
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* apply patch
* fix
Co-authored-by: Dario Vladović <d.vladimyr@gmail.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Diffstat (limited to 'src/modules/package.rs')
-rw-r--r-- | src/modules/package.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/modules/package.rs b/src/modules/package.rs index bd7372ca6..1f95a7e0a 100644 --- a/src/modules/package.rs +++ b/src/modules/package.rs @@ -54,6 +54,13 @@ fn extract_cargo_version(file_contents: &str) -> Option<String> { Some(formatted_version) } +fn extract_vlang_version(file_contents: &str) -> Option<String> { + let re = Regex::new(r"(?m)^\s*version\s*:\s*'(?P<version>[^']+)'").unwrap(); + let caps = re.captures(file_contents)?; + let formatted_version = format_version(&caps["version"]); + Some(formatted_version) +} + fn extract_package_version(file_contents: &str, display_private: bool) -> Option<String> { let package_json: json::Value = json::from_str(file_contents).ok()?; @@ -198,6 +205,8 @@ fn get_package_version(base_dir: &Path, config: &PackageConfig) -> Option<String extract_maven_version(&pom_file) } else if let Ok(meson_build) = utils::read_file(base_dir.join("meson.build")) { extract_meson_version(&meson_build) + } else if let Ok(vlang_mod) = utils::read_file(base_dir.join("v.mod")) { + extract_vlang_version(&vlang_mod) } else { None } @@ -818,6 +827,21 @@ end"; project_dir.close() } + #[test] + fn test_extract_vlang_version() -> io::Result<()> { + let config_name = "v.mod"; + let config_content = " + Module { + name: 'starship', + author: 'matchai', + version: '1.2.3' + }"; + let project_dir = create_project_dir()?; + fill_config(&project_dir, config_name, Some(&config_content))?; + expect_output(&project_dir, Some("v1.2.3"), None); + project_dir.close() + } + fn create_project_dir() -> io::Result<TempDir> { tempfile::tempdir() } |