aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/downloader/vcs_downloader.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/downloader/vcs_downloader.rs')
-rw-r--r--crates/shirabe/src/downloader/vcs_downloader.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/crates/shirabe/src/downloader/vcs_downloader.rs b/crates/shirabe/src/downloader/vcs_downloader.rs
index fadfa98..493440c 100644
--- a/crates/shirabe/src/downloader/vcs_downloader.rs
+++ b/crates/shirabe/src/downloader/vcs_downloader.rs
@@ -69,6 +69,24 @@ impl VcsDownloaderBase {
// Callers in subclasses must do that check themselves (they already have).
Ok(None)
}
+
+ pub fn get_vcs_reference(&self, package: PackageInterfaceHandle, path: &str) -> Option<String> {
+ let parser = VersionParser::new();
+ let mut guesser = VersionGuesser::new(
+ self.config.clone(),
+ self.process.clone(),
+ parser.clone(),
+ Some(self.io.clone()),
+ );
+ let dumper = ArrayDumper::new();
+
+ let package_config = dumper.dump(package.clone());
+ if let Ok(Some(package_version)) = guesser.guess_version(&package_config, path) {
+ return package_version.commit.clone();
+ }
+
+ None
+ }
}
pub trait VcsDownloader: