001// SPDX-FileCopyrightText: 2021 Paul Schaub <vanitasvitae@fsfe.org>
002//
003// SPDX-License-Identifier: Apache-2.0
004
005package org.pgpainless.sop;
006
007import java.io.IOException;
008import java.io.InputStream;
009import java.util.Properties;
010
011import sop.operation.Version;
012
013public class VersionImpl implements Version {
014    @Override
015    public String getName() {
016        return "PGPainless-SOP";
017    }
018
019    @Override
020    public String getVersion() {
021        // See https://stackoverflow.com/a/50119235
022        String version;
023        try {
024            Properties properties = new Properties();
025            InputStream propertiesFileIn = getClass().getResourceAsStream("/version.properties");
026            if (propertiesFileIn == null) {
027                throw new IOException("File version.properties not found.");
028            }
029            properties.load(propertiesFileIn);
030            version = properties.getProperty("version");
031        } catch (IOException e) {
032            version = "DEVELOPMENT";
033        }
034        return version;
035    }
036}