Skip to content

Commit

Permalink
feat(utils): version utils
Browse files Browse the repository at this point in the history
  • Loading branch information
WakelessSloth56 committed Jan 13, 2022
1 parent e0f5b60 commit 8417a4b
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 30 deletions.
14 changes: 8 additions & 6 deletions src/main/java/org/auioc/mods/arnicalib/ArnicaLib.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import org.apache.logging.log4j.Marker;
import org.auioc.mods.arnicalib.api.java.data.Tuple;
import org.auioc.mods.arnicalib.utils.LogUtil;
import org.auioc.mods.arnicalib.utils.java.JarUtils;
import org.auioc.mods.arnicalib.utils.java.VersionUtils;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.fml.common.Mod;

Expand All @@ -13,19 +13,21 @@ public final class ArnicaLib {

public static final String MOD_ID = "arnicalib";
public static final String MOD_NAME = "ArnicaLib";
public static String MAIN_VERSION;
public static String FULL_VERSION;
public static final String MAIN_VERSION;
public static final String FULL_VERSION;

public static final Logger LOGGER = LogUtil.getLogger(MOD_NAME);
private static final Marker CORE = LogUtil.getMarker("CORE");

public ArnicaLib() {
Tuple<String, String> version = JarUtils.getModVersion(getClass());
Initialization.init();
}

static {
Tuple<String, String> version = VersionUtils.getModVersion(ArnicaLib.class);
MAIN_VERSION = version.getA();
FULL_VERSION = version.getB();
LOGGER.info(CORE, "Version: " + MAIN_VERSION + " (" + FULL_VERSION + ")");

Initialization.init();
}

public static ResourceLocation id(String path) {
Expand Down
24 changes: 0 additions & 24 deletions src/main/java/org/auioc/mods/arnicalib/utils/java/JarUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,12 @@
import java.util.jar.Attributes;
import java.util.jar.Manifest;
import org.apache.logging.log4j.Marker;
import org.auioc.mods.arnicalib.api.java.data.Tuple;
import org.auioc.mods.arnicalib.utils.LogUtil;

public interface JarUtils {

static Marker MARKER = LogUtil.getMarker(JarUtils.class);

static Tuple<String, String> DEFAULT_VERSION = new Tuple<String, String>("0", "0");

static Attributes getManifest(Class<?> clazz) throws MalformedURLException, IOException {
try {
String path = clazz.getResource(clazz.getSimpleName() + ".class").toString();
Expand All @@ -26,25 +23,4 @@ static Attributes getManifest(Class<?> clazz) throws MalformedURLException, IOEx
}
}

static Tuple<String, String> getModVersion(final Attributes attrs, String modName) {
String fullVersion = attrs.getValue(modName + "-Version");
String[] p = fullVersion.split("-");
if (p.length > 0 && p[p.length - 1].equals("null")) {
LOGGER.warn(MARKER, "The revision number of mod " + modName + " is null. If this is a manually built version you can ignore this message.");
}
return new Tuple<String, String>(attrs.getValue("Implementation-Version"), fullVersion);
}

static Tuple<String, String> getModVersion(Class<?> clazz, String modName) {
try {
return getModVersion(getManifest(clazz), modName);
} catch (Exception e) {
return DEFAULT_VERSION;
}
}

static Tuple<String, String> getModVersion(Class<?> clazz) {
return getModVersion(clazz, clazz.getSimpleName());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package org.auioc.mods.arnicalib.utils.java;

import static org.auioc.mods.arnicalib.ArnicaLib.LOGGER;
import java.util.jar.Attributes;
import org.apache.logging.log4j.Marker;
import org.auioc.mods.arnicalib.api.java.data.Tuple;
import org.auioc.mods.arnicalib.utils.LogUtil;

public class VersionUtils {

private static final Marker MARKER = LogUtil.getMarker(VersionUtils.class);

private static final Tuple<String, String> DEFAULT_VERSION_TUPLE = new Tuple<String, String>("0", "0");

public static String getMainVersion(Attributes attrs) {
return attrs.getValue("Implementation-Version");
}

public static String getFullVersion(Attributes attrs, String modName) {
String version = attrs.getValue(modName + "-Version");
String[] p = version.split("-");
if (p.length > 0 && p[p.length - 1].equals("null")) {
LOGGER.warn(MARKER, "The revision number of mod " + modName + " is null. If this is a manually built version you can ignore this message.");
}
return version;
}

public static Tuple<String, String> getModVersion(Attributes attrs, String modName) {
return new Tuple<String, String>(getMainVersion(attrs), getFullVersion(attrs, modName));
}

public static Tuple<String, String> getModVersion(Class<?> clazz, String modName) {
try {
return getModVersion(JarUtils.getManifest(clazz), modName);
} catch (Exception e) {
return DEFAULT_VERSION_TUPLE;
}
}

public static Tuple<String, String> getModVersion(Class<?> clazz) {
return getModVersion(clazz, clazz.getSimpleName());
}

}

0 comments on commit 8417a4b

Please # to comment.