package org.corfudb.util; import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.util.Properties; /** * Created by mwei on 8/12/15. */ @Slf4j public class GitRepositoryState { private static GitRepositoryState _gitRepositoryState = null; public String tags; public String branch; public String dirty; public String remoteOriginUrl; public String commitId; public String commitIdAbbrev; public String describe; public String describeShort; public String commitUserName; public String commitUserEmail; public String commitMessageFull; public String commitMessageShort; public String commitTime; public String closestTagName; public String closestTagCommitCount; public String buildUserName; public String buildUserEmail; public String buildTime; public String buildHost; public String buildVersion; private GitRepositoryState(Properties properties) { this.tags = properties.get("git.tags").toString(); this.branch = properties.get("git.branch").toString(); this.dirty = properties.get("git.dirty").toString(); this.remoteOriginUrl = properties.get("git.remote.origin.url").toString(); this.commitId = properties.get("git.commit.id").toString(); this.commitIdAbbrev = properties.get("git.commit.id.abbrev").toString(); this.describe = properties.get("git.commit.id.describe").toString(); this.describeShort = properties.get("git.commit.id.describe-short").toString(); this.commitUserName = properties.get("git.commit.user.name").toString(); this.commitUserEmail = properties.get("git.commit.user.email").toString(); this.commitMessageFull = properties.get("git.commit.message.full").toString(); this.commitMessageShort = properties.get("git.commit.message.short").toString(); this.commitTime = properties.get("git.commit.time").toString(); this.closestTagName = properties.get("git.closest.tag.name").toString(); this.closestTagCommitCount = properties.get("git.closest.tag.commit.count").toString(); this.buildUserName = properties.get("git.build.user.name").toString(); this.buildUserEmail = properties.get("git.build.user.email").toString(); this.buildTime = properties.get("git.build.time").toString(); this.buildHost = properties.get("git.build.host").toString(); this.buildVersion = properties.get("git.build.version").toString(); } public static GitRepositoryState getRepositoryState() { if (_gitRepositoryState == null) { Properties properties = new Properties(); try { properties.load(GitRepositoryState.class.getClassLoader().getResourceAsStream("git.properties")); } catch (IOException ie) { log.error("Failed to get repository state", ie); } _gitRepositoryState = new GitRepositoryState(properties); } return _gitRepositoryState; } }