aboutsummaryrefslogtreecommitdiff
path: root/src/main/ui/JCA.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/ui/JCA.java')
-rw-r--r--src/main/ui/JCA.java68
1 files changed, 37 insertions, 31 deletions
diff --git a/src/main/ui/JCA.java b/src/main/ui/JCA.java
index f9467ea..7892850 100644
--- a/src/main/ui/JCA.java
+++ b/src/main/ui/JCA.java
@@ -8,18 +8,16 @@ import model.ca.Template;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.time.ZonedDateTime;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.Scanner;
/**
* Main program
*/
public class JCA {
/**
- * The current screen.
- */
- private UIHandler screen;
-
- /**
* Instances of the five screens;
*/
private final UIHandler mainScreen;
@@ -27,30 +25,30 @@ public class JCA {
private final UIHandler issueScreen;
private final UIHandler templatesScreen;
private final UIHandler templateSetScreen;
-
/**
* Templates
*/
private final List<Template> templates;
-
/**
* The CA
*/
private final CACertificate ca;
-
/**
* Audit logs
*/
private final List<AuditLogEntry> logs;
-
/**
* Current user
*/
private final String user;
+ /**
+ * The current screen.
+ */
+ private UIHandler screen;
/**
* EFFECTS: Init with main screen, empty templates, logs, user 'yuuta', and generate a private key with no CA cert.
- * Throws {@link NoSuchAlgorithmException} when crypto issue happens.
+ * Throws {@link NoSuchAlgorithmException} when crypto issue happens.
*/
public JCA() throws NoSuchAlgorithmException {
this.mainScreen = new MainScreen(this);
@@ -86,7 +84,7 @@ public class JCA {
/**
* EFFECTS: Read PEM from stdin, matched the given tag.
- * Throws {@link ParseException} if the input is incorrect.
+ * Throws {@link ParseException} if the input is incorrect.
*/
public Byte[] handleInputPEM(String desiredTag) throws ParseException {
final Scanner scanner = new Scanner(System.in);
@@ -144,24 +142,27 @@ public class JCA {
}
private void handleLine(String... args) {
- if (!args[0].isBlank()) {
- switch (args[0]) {
- case "help":
- screen.help();
- break;
- case "show":
- screen.show();
- break;
- case "commit":
- screen.commit();
- break;
- case "exit":
- setScreen(screen.exit());
- break;
- default:
- screen.command(args);
- break;
- }
+ if (args[0].equals("log")) {
+ getLogs().forEach(System.out::println);
+ return;
+ }
+ switch (args[0]) {
+ case "help":
+ screen.help();
+ System.out.println("log\tView audit logs");
+ break;
+ case "show":
+ screen.show();
+ break;
+ case "commit":
+ screen.commit();
+ break;
+ case "exit":
+ setScreen(screen.exit());
+ break;
+ default:
+ screen.command(args);
+ break;
}
printPS1();
}
@@ -185,7 +186,12 @@ public class JCA {
printPS1();
final Scanner scanner = new Scanner(System.in);
while (true) {
- handleLine(scanner.nextLine().split(" "));
+ String[] args = scanner.nextLine().split(" ");
+ if (args.length <= 0 || args[0].isBlank()) {
+ printPS1();
+ continue;
+ }
+ handleLine(args);
}
}