11package lvp ;
22
33import java .io .IOException ;
4- import java .nio .charset .StandardCharsets ;
54import java .nio .file .Files ;
65import java .nio .file .Path ;
76import java .util .ArrayList ;
8- import java .util .Base64 ;
97import java .util .List ;
108import java .util .Optional ;
119import java .util .Scanner ;
1210import java .util .regex .Matcher ;
13- import java .util .stream .Stream ;
14-
1511import lvp .sinks .server_sink .Server ;
1612import lvp .sinks .server_sink .ServerSink ;
1713import lvp .skills .logging .LogLevel ;
2824public 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 ()
0 commit comments