001 /* 002 * Cumulus4j - Securing your data in the cloud - http://cumulus4j.org 003 * Copyright (C) 2011 NightLabs Consulting GmbH 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 package org.cumulus4j.keymanager.cli; 019 020 import java.io.IOException; 021 import java.io.InputStream; 022 import java.util.Properties; 023 024 /** 025 * <p> 026 * {@link SubCommand} implementation for showing the version number of the command 027 * line tool. 028 * </p> 029 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de 030 */ 031 public class VersionSubCommand 032 extends SubCommand 033 { 034 public static String getVersion() throws IOException 035 { 036 Properties properties = new Properties(); 037 String resourceName = "/META-INF/maven/org.cumulus4j/org.cumulus4j.keymanager.cli/pom.properties"; 038 InputStream in = VersionSubCommand.class.getResourceAsStream(resourceName); 039 if (in == null) 040 return "UNKNOWN"; 041 042 try { 043 properties.load(in); 044 } catch (IOException x) { 045 throw new IOException("Cannot read resource: " + resourceName, x); 046 } finally { 047 in.close(); 048 } 049 String version = properties.getProperty("version"); 050 return version; 051 } 052 053 @Override 054 public String getSubCommandName() { 055 return "version"; 056 } 057 058 @Override 059 public String getSubCommandDescription() { 060 return "Display the version of this JAR."; 061 } 062 063 @Override 064 public void run() throws Exception 065 { 066 System.out.println(getVersion()); 067 } 068 }