Skip to content

Commit 35142ac

Browse files
adjusted naming
1 parent 51de72e commit 35142ac

10 files changed

Lines changed: 48 additions & 175 deletions

File tree

src/main/java/lvp/FileWatcher.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ private Stream<Path> getFolderTree() {
7474
.flatMap(root -> {
7575
try {
7676
return Files.find(root, Integer.MAX_VALUE,
77-
(_, attrs) -> attrs.isDirectory()).filter(p -> !p.toString().contains(".git"));
77+
(_, attrs) -> attrs.isDirectory()).filter(p -> !p.toString().startsWith("."));
7878
} catch (IOException e) {
7979
Logger.logError("Error walking directory: " + root.toAbsolutePath(), e);
8080
return Stream.empty();
@@ -109,11 +109,11 @@ private void watchLoop() {
109109

110110
private void processWatchKeyEvents(WatchKey key) {
111111
for (WatchEvent<?> ev : key.pollEvents()) {
112-
Path changed = (Path) ev.context();
113-
if (Files.isDirectory(changed)) continue;
112+
Path changedFile = (Path) ev.context();
113+
if (Files.isDirectory(changedFile)) continue;
114114

115-
Path dir = (Path) key.watchable();
116-
Path fullPath = dir.resolve(changed).normalize().toAbsolutePath();
115+
Path watchedDir = (Path) key.watchable();
116+
Path fullPath = watchedDir.resolve(changedFile).normalize().toAbsolutePath();
117117

118118
Instant now = Instant.now();
119119
Instant last = lastModified.getOrDefault(fullPath, Instant.EPOCH);
@@ -128,7 +128,7 @@ private void processWatchKeyEvents(WatchKey key) {
128128
Logger.logInfo("Event for source: " + fullPath + " (" + ev.kind().name() + ")");
129129
executor.submit(() -> run(source.get()));
130130
}
131-
else if (!sourceOnly && (watchFilter.isEmpty() || watchFilter.get().matches(changed))) {
131+
else if (!sourceOnly && (watchFilter.isEmpty() || watchFilter.get().matches(changedFile))) {
132132
Logger.logInfo("Event for file: " + fullPath + " (" + ev.kind().name() + ")");
133133
execute(sources);
134134
}

src/main/java/lvp/Main.java

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
package lvp;
22

33
import java.io.IOException;
4-
import java.nio.charset.StandardCharsets;
54
import java.nio.file.Files;
65
import java.nio.file.Path;
76
import java.util.ArrayList;
8-
import java.util.Base64;
97
import java.util.List;
108
import java.util.Optional;
119
import java.util.Scanner;
1210
import java.util.regex.Matcher;
13-
import java.util.stream.Stream;
14-
1511
import lvp.sinks.server_sink.Server;
1612
import lvp.sinks.server_sink.ServerSink;
1713
import lvp.skills.logging.LogLevel;
@@ -28,7 +24,7 @@
2824
public class Main {
2925
private record Config(List<Source> sources, int port, LogLevel logLevel, Optional<String> watchFilter, boolean sourceOnly){}
3026

31-
private static final Path LVP_CONFIG_PATH = Path.of("./sources.json");
27+
private static final Path LVP_SOURCES_PATH = Path.of("./sources.json");
3228
public static void main(String[] args) {
3329
Config cfg = parseArgs(args);
3430

@@ -91,6 +87,7 @@ private static void handleServerCommands(String command) {
9187
}
9288
}
9389

90+
// Documentation in README
9491
private static Config parseArgs(String[] args) {
9592
List<String> files = new ArrayList<>();
9693
Optional<String> cmd = Optional.empty();
@@ -106,27 +103,19 @@ private static Config parseArgs(String[] args) {
106103
String value = parts.length > 1 ? parts[1].strip() : "";
107104

108105
switch (key) {
109-
case "-l", "--log":
110-
logLevel = value.isBlank() ? LogLevel.Info : LogLevel.fromString(value);
111-
break;
112-
case "--port", "-p":
113-
try { port = Integer.parseInt(value); } catch(NumberFormatException _) {}
114-
break;
115-
case "--cmd":
116-
cmd = value.isBlank() ? Optional.empty() : Optional.of(value);
117-
break;
118-
case "--config", "-c":
119-
sources = loadConfig();
120-
break;
121-
case "--watch-filter", "-w":
122-
watchFilter = value.isBlank() ? Optional.empty() : Optional.of(value);
123-
break;
124-
case "--source-only", "-s":
125-
sourceOnly = true;
126-
break;
127-
default:
106+
case "-l", "--log" -> logLevel = value.isBlank() ? LogLevel.Info : LogLevel.fromString(value);
107+
case "--port", "-p" -> {
108+
try { port = Integer.parseInt(value); } catch(NumberFormatException _) {
109+
System.err.println("Error: Invalid port number. Not a number: " + value);
110+
}
111+
}
112+
case "--cmd" -> cmd = value.isBlank() ? Optional.empty() : Optional.of(value);
113+
case "--config", "-c" -> sources = loadWatchConfig();
114+
case "--watch-filter", "-w" -> watchFilter = value.isBlank() ? Optional.empty() : Optional.of(value);
115+
case "--source-only", "-s" -> sourceOnly = true;
116+
default -> {
128117
if (!arg.isBlank()) files.add(arg.strip());
129-
break;
118+
}
130119
}
131120
}
132121

@@ -162,14 +151,15 @@ private static Optional<List<Path>> getFilePaths(List<String> files) {
162151
return paths.isEmpty() ? Optional.empty() : Optional.of(paths);
163152
}
164153

165-
private static Optional<List<Source>> loadConfig() {
166-
if (!Files.isRegularFile(LVP_CONFIG_PATH) || !Files.exists(LVP_CONFIG_PATH)) {
167-
Logger.logError("Config not found at: " + LVP_CONFIG_PATH.normalize().toAbsolutePath());
154+
private static Optional<List<Source>> loadWatchConfig() {
155+
if (!Files.isRegularFile(LVP_SOURCES_PATH) || !Files.exists(LVP_SOURCES_PATH)) {
156+
Logger.logError("Config not found at: " + LVP_SOURCES_PATH.normalize().toAbsolutePath());
168157
return Optional.empty();
169158
}
170-
return ConfigParser.parse(LVP_CONFIG_PATH);
159+
return ConfigParser.parse(LVP_SOURCES_PATH);
171160
}
172161

162+
// Returns false only, when a new version is available. If the version can't be checked, it will return true
173163
public static boolean isLatestRelease() {
174164
try (HttpClient client = HttpClient.newHttpClient()) {
175165
HttpRequest request = HttpRequest.newBuilder()

src/main/java/lvp/Processor.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,19 @@
1515
import java.util.function.BiFunction;
1616
import java.util.stream.Collectors;
1717
import java.util.stream.Gatherers;
18-
import java.util.stream.Stream;
1918

19+
import lvp.services.*;
2020
import lvp.sinks.Sink;
2121
import lvp.skills.Scan;
2222
import lvp.skills.TriConsumer;
2323
import lvp.skills.logging.Logger;
2424
import lvp.skills.parser.InstructionParser;
2525
import lvp.skills.parser.InstructionParser.*;
26-
import lvp.transformer.*;
2726
public class Processor {
2827
public record MetaInformation(String sourceId, String id, boolean standalone) {}
2928

3029
Map<String, BiConsumer<MetaInformation, String>> channel = new HashMap<>();
31-
Map<String, BiFunction<MetaInformation, String, String>> transformer = new HashMap<>(Map.of(
30+
Map<String, BiFunction<MetaInformation, String, String>> services = new HashMap<>(Map.of(
3231
"Text", Text::of,
3332
"Codeblock", Text::codeblock,
3433
"Cutout", Text::cutout,
@@ -50,7 +49,7 @@ void process(Process process, String sourceId) {
5049
case Register register -> processRegister(register);
5150
case Unknown unknown -> processUnknown(unknown, sourceId);
5251
default -> null;
53-
})).forEachOrdered(_->{});
52+
})).forEachOrdered(_ -> {});
5453
}
5554
catch (Exception e) {
5655
Logger.logError("Error reading process output: " + e.getMessage(), e);
@@ -81,8 +80,8 @@ String executeCommand(String name, String content, MetaInformation meta, Process
8180
channel.get(name).accept(meta, content);
8281
return null;
8382
}
84-
else if (transformer.containsKey(name)) {
85-
return transformer.get(name).apply(meta, content);
83+
else if (services.containsKey(name)) {
84+
return services.get(name).apply(meta, content);
8685
}
8786
else if (scans.containsKey(name)) {
8887
scans.get(name).accept(meta, process, content);
@@ -109,7 +108,7 @@ String consumeCommandScan(MetaInformation meta, Process process, String prev) {
109108
}
110109

111110
String processRegister(Register register) {
112-
transformer.put(register.name(), (meta, content) -> {
111+
services.put(register.name(), (meta, content) -> {
113112
boolean isWindows = System.getProperty("os.name").toLowerCase().startsWith("windows");
114113
String out = null;
115114
try {
@@ -153,7 +152,7 @@ void init(String sourceId) {
153152

154153
void registerSink(Sink sink) {
155154
channel.putAll(sink.registerChannel());
156-
transformer.putAll(sink.registerTransformer());
155+
services.putAll(sink.registerTransformer());
157156
scans.putAll(sink.registerScan());
158157
sinks.add(sink);
159158
}

src/main/java/lvp/transformer/Interaction.java renamed to src/main/java/lvp/services/Interaction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package lvp.transformer;
1+
package lvp.services;
22

33
import java.nio.charset.StandardCharsets;
44
import java.nio.file.Path;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package lvp.transformer;
1+
package lvp.services;
22

33
import java.util.Arrays;
44
import java.util.Iterator;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package lvp.transformer;
1+
package lvp.services;
22
import java.io.BufferedWriter;
33
import java.io.IOException;
44
import java.nio.file.Files;

src/main/java/lvp/sinks/server_sink/Server.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,17 @@ private void handleRoot(HttpExchange exchange) throws IOException {
168168
Logger.logDebug("Sending '" + resourcePath + "'");
169169

170170
try (final InputStream stream = Server.class.getResourceAsStream(resourcePath)) {
171-
final byte[] bytes = stream.readAllBytes();
172-
exchange.getResponseHeaders().add("Content-Type", Files.probeContentType(Path.of(resourcePath)) + "; charset=utf-8");
173-
exchange.sendResponseHeaders(200, bytes.length);
174-
exchange.getResponseBody().write(bytes);
175-
exchange.getResponseBody().flush();
171+
172+
if (stream == null) {
173+
exchange.sendResponseHeaders(404, -1);
174+
}
175+
else {
176+
final byte[] bytes = stream.readAllBytes();
177+
exchange.getResponseHeaders().add("Content-Type", Files.probeContentType(Path.of(resourcePath)) + "; charset=utf-8");
178+
exchange.sendResponseHeaders(200, bytes.length);
179+
exchange.getResponseBody().write(bytes);
180+
}
181+
exchange.getResponseBody().flush();
176182
} finally {
177183
exchange.close();
178184
}

src/main/java/lvp/sinks/server_sink/ServerSink.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import java.util.function.BiFunction;
77

88
import lvp.Processor.MetaInformation;
9+
import lvp.services.Interaction;
910
import lvp.sinks.Sink;
1011
import lvp.skills.TriConsumer;
11-
import lvp.transformer.Interaction;
1212

1313
public class ServerSink implements Sink {
1414

src/main/java/lvp/skills/parser/TurtleParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import java.util.regex.Pattern;
66
import java.util.stream.Stream;
77

8+
import lvp.services.Turtle;
89
import lvp.skills.logging.Logger;
9-
import lvp.transformer.Turtle;
1010

1111
public class TurtleParser {
1212
private TurtleParser() {}

src/main/java/lvp/transformer/Test.java

Lines changed: 0 additions & 122 deletions
This file was deleted.

0 commit comments

Comments
 (0)