Skip to content

Commit 77596e1

Browse files
committed
Cleaned up how we download stuff, we just download stuff to where they are needed.
Goal: Make it delete unused files in another update...
1 parent 7839949 commit 77596e1

8 files changed

Lines changed: 79 additions & 26 deletions

File tree

src/main/java/org/mangorage/installer/Installer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void main(String[] args) throws InterruptedException {
2525
LogUtil.println("Starting Installer in 30 seconds...");
2626
LogUtil.println("Arguments Supplied: " + Arrays.toString(args));
2727

28-
Thread.sleep(30_000); // Sleep for 30 seconds
28+
//Thread.sleep(30_000); // Sleep for 30 seconds
2929

3030
OptionParser parser = new OptionParser();
3131
parser.allowsUnrecognizedOptions();

src/main/java/org/mangorage/installer/core/UpdateChecker.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.mangorage.installer.core;
22

3-
import org.mangorage.installer.core.data.Dependency;
43
import org.mangorage.installer.core.data.Packages;
54
import org.mangorage.installer.core.data.Util;
65
import java.util.HashMap;
@@ -30,7 +29,6 @@ void start(final int freq) {
3029
packages
3130
.packages()
3231
.stream()
33-
.filter(Dependency::checkUpdate)
3432
.forEach(dependency -> {
3533
final var metadata = Util.downloadMetadata(dependency.getMaven());
3634
final var lastUpdatedTime = Util.getLastUpdated(metadata);
@@ -45,7 +43,6 @@ public void run() {
4543
packages
4644
.packages()
4745
.stream()
48-
.filter(Dependency::checkUpdate)
4946
.forEach(dependency -> {
5047
final var metadata = Util.downloadMetadata(dependency.getMaven());
5148
final var lastUpdatedTime = Util.getLastUpdated(metadata);

src/main/java/org/mangorage/installer/core/data/Dependency.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,19 @@
2222

2323
package org.mangorage.installer.core.data;
2424

25+
import org.mangorage.installer.core.LogUtil;
26+
27+
import java.io.File;
28+
import java.nio.file.Files;
29+
import java.nio.file.Path;
30+
2531
public record Dependency(
2632
String url,
2733
String group,
2834
String artifact,
2935
String version,
3036
String target,
31-
String destination,
32-
boolean checkUpdate
37+
String output
3338
) {
3439
public static String fix(String value) {
3540
if (value.endsWith("/")) {
@@ -55,6 +60,24 @@ public String getDownloadURL() {
5560
}
5661

5762
public String getDestination(String destinationPath) {
58-
return this.destination == null ? destinationPath : this.destination;
63+
return this.output == null ? destinationPath : this.output;
64+
}
65+
66+
public File download(Path relative) {
67+
final var dest = relative.resolve(output).toAbsolutePath();
68+
69+
if (Files.exists(dest)) {
70+
LogUtil.println(dest + " Already exists!");
71+
return new File(dest.toString());
72+
}
73+
74+
Util.installUrl(
75+
url() + output,
76+
dest.toString(),
77+
false
78+
);
79+
80+
return new File(dest.toString());
5981
}
82+
6083
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package org.mangorage.installer.core.data;
2+
3+
public record Package(
4+
String url,
5+
String group,
6+
String artifact,
7+
String version,
8+
String target,
9+
String destination,
10+
boolean checkUpdate
11+
) {
12+
public static String fix(String value) {
13+
if (value.endsWith("/")) {
14+
return value.substring(0, value.length() - 1);
15+
}
16+
return value;
17+
}
18+
19+
public static String fixDot(String value) {
20+
return value.replaceAll("\\.", "/");
21+
}
22+
23+
public Maven getMaven() {
24+
return new Maven(
25+
url,
26+
group,
27+
artifact
28+
);
29+
}
30+
31+
public String getDownloadURL() {
32+
return "%s/%s/%s/%s/%s".formatted(fix(url), fixDot(group), artifact, version, target);
33+
}
34+
35+
public String getDestination(String destinationPath) {
36+
return this.destination == null ? destinationPath : this.destination;
37+
}
38+
}

src/main/java/org/mangorage/installer/core/data/Packages.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44

55
public record Packages(
66
String destination,
7-
List<Dependency> packages
7+
List<Package> packages
88
) {}

src/main/java/org/mangorage/installer/core/data/Util.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public static File downloadTo(Maven maven, String version, String path) {
5353
);
5454

5555
installUrl(URL, path, false);
56+
5657
return new File(path);
5758
}
5859

@@ -109,7 +110,7 @@ public static void installUrl(String url, String destinationPath, boolean resolv
109110

110111
// Open a stream from the URL
111112
try (InputStream inputStream = urlObject.openStream()) {
112-
// Create the destination path
113+
// Create the output path
113114
String path = destinationPath;
114115
if (resolveName) {
115116
Path file = Path.of(urlObject.toURI().getPath());
@@ -119,7 +120,7 @@ public static void installUrl(String url, String destinationPath, boolean resolv
119120
if (!Files.exists(destination.getParent())) Files.createDirectories(destination.getParent());
120121
Files.copy(inputStream, destination, StandardCopyOption.REPLACE_EXISTING);
121122

122-
LogUtil.println("[INSTALLER] Installation complete. File saved to: " + destination);
123+
LogUtil.println("Installation complete. File saved to: " + destination);
123124
} catch (URISyntaxException e) {
124125
throw new RuntimeException(e);
125126
}

src/main/java/org/mangorage/installer/core/tasks/HandleDependenciesTask.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,29 @@
33
import org.mangorage.installer.core.LogUtil;
44
import org.mangorage.installer.core.data.Dependency;
55
import org.mangorage.installer.core.data.Maven;
6+
import org.mangorage.installer.core.data.Package;
67
import org.mangorage.installer.core.data.Util;
78

89
import java.io.File;
910
import java.nio.file.Path;
1011
import java.util.Arrays;
11-
import java.util.HashSet;
1212
import java.util.List;
1313
import java.util.Map;
1414
import java.util.Optional;
15-
import java.util.Set;
1615

1716
public final class HandleDependenciesTask {
1817
private static final Path LIBRARIES_PATH = Path.of("libraries/").toAbsolutePath();
1918

2019
public static void handleDependencies(List<Dependency> dependencies) {
2120
LogUtil.println("Handling dependencies...");
2221
LogUtil.println("Skipping dependencies already present...");
23-
Set<String> installedJars = new HashSet<>();
24-
List<File> existingJars = getExistingLibraryJars();
25-
26-
for (Dependency dep : dependencies) {
27-
installedJars.add(dep.target());
28-
if (!existingJars.contains(new File(LIBRARIES_PATH.toString(), dep.target()))) {
29-
Util.installUrl(dep.getDownloadURL(), LIBRARIES_PATH.toString(), true);
30-
} else {
31-
LogUtil.println("Skipped -> " + dep.target());
32-
}
22+
23+
for (Dependency dependency : dependencies) {
24+
dependency.download(LIBRARIES_PATH);
3325
}
3426
}
3527

36-
public static File handleDependency(Dependency dependency, Map<String, String> installedVersions, Map<String, String> newVersions, String destination) {
28+
public static File handlePackage(Package dependency, Map<String, String> installedVersions, Map<String, String> newVersions, String destination) {
3729
Maven maven = new Maven(dependency.url(), dependency.group(), dependency.artifact());
3830
String latestVersion = FetchPackagesTask.fetchLatestVersion(maven, dependency.version());
3931
newVersions.put(dependency.target(), latestVersion);
@@ -43,6 +35,8 @@ public static File handleDependency(Dependency dependency, Map<String, String> i
4335
}
4436

4537
LogUtil.println("Installing/Updating " + dependency.target());
38+
39+
4640
return Util.downloadTo(maven, latestVersion, destination + "/" + dependency.target());
4741
}
4842

src/main/java/org/mangorage/installer/core/tasks/ProcessPackagesTask.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import org.mangorage.installer.core.LogUtil;
44
import org.mangorage.installer.core.UpdateChecker;
5-
import org.mangorage.installer.core.data.Dependency;
65
import org.mangorage.installer.core.data.Installed;
76
import org.mangorage.installer.core.data.InstalledPackage;
7+
import org.mangorage.installer.core.data.Package;
88
import org.mangorage.installer.core.data.Packages;
99

1010
import java.io.File;
@@ -32,8 +32,8 @@ public static List<File> processPackages(final boolean checkUpdates, final int u
3232
if (checkUpdates) UpdateChecker.startChecker(packages, updateFreq);
3333
Map<String, String> newVersions = new HashMap<>();
3434

35-
for (Dependency dependency : packages.packages()) {
36-
File jar = HandleDependenciesTask.handleDependency(dependency, installedVersions, newVersions, dependency.getDestination(packages.destination()));
35+
for (Package dependency : packages.packages()) {
36+
File jar = HandleDependenciesTask.handlePackage(dependency, installedVersions, newVersions, dependency.getDestination(packages.destination()));
3737
if (jar != null) results.add(jar);
3838
}
3939

0 commit comments

Comments
 (0)