From a9afae797753b348f9c43f3d5348fa7535750a92 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 25 Sep 2021 22:29:01 -0400 Subject: [PATCH] rusEFI console to compare current bundle against auto-DFU bundle #3266 progress --- .../java/com/rusefi/SignatureHelperTest.java | 14 +++++++ .../main/java/com/rusefi/RusEfiSignature.java | 38 +++++++++++++++++++ .../main/java/com/rusefi/SignatureHelper.java | 38 ++++++++++++------- 3 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 java_console/io/src/test/java/com/rusefi/SignatureHelperTest.java create mode 100644 java_console/shared_io/src/main/java/com/rusefi/RusEfiSignature.java diff --git a/java_console/io/src/test/java/com/rusefi/SignatureHelperTest.java b/java_console/io/src/test/java/com/rusefi/SignatureHelperTest.java new file mode 100644 index 0000000000..5d4d2a1ec9 --- /dev/null +++ b/java_console/io/src/test/java/com/rusefi/SignatureHelperTest.java @@ -0,0 +1,14 @@ +package com.rusefi; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SignatureHelperTest { + @Test + public void parseSignature() { + RusEfiSignature s = SignatureHelper.parse("rusEFI 2021.09.22.all.3378169541"); + + assertEquals("all", s.getBundle()); + } +} diff --git a/java_console/shared_io/src/main/java/com/rusefi/RusEfiSignature.java b/java_console/shared_io/src/main/java/com/rusefi/RusEfiSignature.java new file mode 100644 index 0000000000..d23e4c5181 --- /dev/null +++ b/java_console/shared_io/src/main/java/com/rusefi/RusEfiSignature.java @@ -0,0 +1,38 @@ +package com.rusefi; + +public class RusEfiSignature { + private final String year; + private final String month; + private final String day; + private final String bundle; + private final String hash; + + public RusEfiSignature(String year, String month, String day, String bundle, String hash) { + + this.year = year; + this.month = month; + this.day = day; + this.bundle = bundle; + this.hash = hash; + } + + public String getYear() { + return year; + } + + public String getMonth() { + return month; + } + + public String getDay() { + return day; + } + + public String getBundle() { + return bundle; + } + + public String getHash() { + return hash; + } +} diff --git a/java_console/shared_io/src/main/java/com/rusefi/SignatureHelper.java b/java_console/shared_io/src/main/java/com/rusefi/SignatureHelper.java index c6bb5caef0..cfd973740a 100644 --- a/java_console/shared_io/src/main/java/com/rusefi/SignatureHelper.java +++ b/java_console/shared_io/src/main/java/com/rusefi/SignatureHelper.java @@ -18,21 +18,16 @@ public class SignatureHelper { private static final char SLASH = '/'; public static Pair getUrl(String signature) { - if (signature == null || !signature.startsWith(PREFIX)) - return null; - signature = signature.substring(PREFIX.length()).trim(); - String[] elements = signature.split("\\."); - if (elements.length != 5) + RusEfiSignature s = parse(signature); + if (s == null) return null; - String year = elements[0]; - String month = elements[1]; - String day = elements[2]; - String bundle = elements[3]; - String hash = elements[4]; - - String fileName = hash + ".ini"; - return new Pair("https://rusefi.com/online/ini/rusefi/" + year + SLASH + month + SLASH + day + SLASH + bundle + SLASH + fileName, fileName); + String fileName = s.getHash() + ".ini"; + return new Pair("https://rusefi.com/online/ini/rusefi/" + s.getYear() + SLASH + + s.getMonth() + SLASH + + s.getDay() + SLASH + + s.getBundle() + SLASH + + fileName, fileName); } public static String downloadIfNotAvailable(Pair p) { @@ -56,4 +51,21 @@ public class SignatureHelper { return null; } } + + public static RusEfiSignature parse(String signature) { + if (signature == null || !signature.startsWith(PREFIX)) + return null; + signature = signature.substring(PREFIX.length()).trim(); + String[] elements = signature.split("\\."); + if (elements.length != 5) + return null; + + String year = elements[0]; + String month = elements[1]; + String day = elements[2]; + String bundle = elements[3]; + String hash = elements[4]; + + return new RusEfiSignature(year, month, day, bundle, hash); + } }