/* * Copyright 2015-2016 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.opencb.opencga.core.common; import java.io.IOException; import java.util.Properties; /** * Created on 27/10/15 * * @author Jacobo Coll <jacobo167@gmail.com> */ public class GitRepositoryState { private static GitRepositoryState gitRepositoryState; private String tags; // =${git.tags} // comma separated tag names private String branch; // =${git.branch} private String dirty; // =${git.dirty} private String remoteOriginUrl; // =${git.remote.origin.url} private String commitId; // =${git.commit.id.full} OR ${git.commit.id} private String commitIdAbbrev; // =${git.commit.id.abbrev} private String describe; // =${git.commit.id.describe} private String describeShort; // =${git.commit.id.describe-short} private String commitUserName; // =${git.commit.user.name} private String commitUserEmail; // =${git.commit.user.email} private String commitMessageFull; // =${git.commit.message.full} private String commitMessageShort; // =${git.commit.message.short} private String commitTime; // =${git.commit.time} private String closestTagName; // =${git.closest.tag.name} private String closestTagCommitCount; // =${git.closest.tag.commit.count} private String buildUserName; // =${git.build.user.name} private String buildUserEmail; // =${git.build.user.email} private String buildTime; // =${git.build.time} private String buildHost; // =${git.build.host} private String buildVersion; // =${git.build.version} public static GitRepositoryState get() { if (gitRepositoryState == null) { Properties properties = new Properties(); try { properties.load(GitRepositoryState.class.getClassLoader().getResourceAsStream("git.properties")); } catch (IOException e) { e.printStackTrace(); } gitRepositoryState = new GitRepositoryState(properties); } return gitRepositoryState; } GitRepositoryState() { } 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(); // OR properties.get("git.commit.id") depending on your configuration 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(); } @Override public String toString() { return "{\n" + "\ttags : '" + tags + '\'' + ",\n" + "\tbranch : '" + branch + '\'' + ",\n" + "\tdirty : '" + dirty + '\'' + ",\n" + "\tremoteOriginUrl : '" + remoteOriginUrl + '\'' + ",\n" + "\tcommitId : '" + commitId + '\'' + ",\n" + "\tcommitIdAbbrev : '" + commitIdAbbrev + '\'' + ",\n" + "\tdescribe : '" + describe + '\'' + ",\n" + "\tdescribeShort : '" + describeShort + '\'' + ",\n" + "\tcommitUserName : '" + commitUserName + '\'' + ",\n" + "\tcommitUserEmail : '" + commitUserEmail + '\'' + ",\n" + "\tcommitMessageFull : '" + commitMessageFull + '\'' + ",\n" + "\tcommitMessageShort : '" + commitMessageShort + '\'' + ",\n" + "\tcommitTime : '" + commitTime + '\'' + ",\n" + "\tclosestTagName : '" + closestTagName + '\'' + ",\n" + "\tclosestTagCommitCount : '" + closestTagCommitCount + '\'' + ",\n" + "\tbuildUserName : '" + buildUserName + '\'' + ",\n" + "\tbuildUserEmail : '" + buildUserEmail + '\'' + ",\n" + "\tbuildTime : '" + buildTime + '\'' + ",\n" + "\tbuildHost : '" + buildHost + '\'' + ",\n" + "\tbuildVersion : '" + buildVersion + '\'' + ",\n" + '}'; } /* Generate setters and getters here */ public static GitRepositoryState getGitRepositoryState() { return gitRepositoryState; } public String getTags() { return tags; } public String getBranch() { return branch; } public String getDirty() { return dirty; } public String getRemoteOriginUrl() { return remoteOriginUrl; } public String getCommitId() { return commitId; } public String getCommitIdAbbrev() { return commitIdAbbrev; } public String getDescribe() { return describe; } public String getDescribeShort() { return describeShort; } public String getCommitUserName() { return commitUserName; } public String getCommitUserEmail() { return commitUserEmail; } public String getCommitMessageFull() { return commitMessageFull; } public String getCommitMessageShort() { return commitMessageShort; } public String getCommitTime() { return commitTime; } public String getClosestTagName() { return closestTagName; } public String getClosestTagCommitCount() { return closestTagCommitCount; } public String getBuildUserName() { return buildUserName; } public String getBuildUserEmail() { return buildUserEmail; } public String getBuildTime() { return buildTime; } public String getBuildHost() { return buildHost; } public String getBuildVersion() { return buildVersion; } }