changeset 24:2188b2f13326

Make some minor tweaks to the help system.
author David Barts <n5jrn@me.com>
date Wed, 03 Jul 2024 17:14:22 -0700
parents af86b8e0b88c
children 131e39d96862
files src/main/kotlin/name/blackcap/passman/HelpSubcommand.kt src/main/kotlin/name/blackcap/passman/Main.kt src/main/kotlin/name/blackcap/passman/QuitSubcommand.kt
diffstat 3 files changed, 27 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/kotlin/name/blackcap/passman/HelpSubcommand.kt	Tue Jul 02 18:18:29 2024 -0700
+++ b/src/main/kotlin/name/blackcap/passman/HelpSubcommand.kt	Wed Jul 03 17:14:22 2024 -0700
@@ -2,6 +2,14 @@
 
 class HelpSubcommand(): Subcommand() {
     override fun run(args: Array<String>) {
+        if (args.isEmpty() || args[0] == "-h" || args[0].startsWith("--h")) {
+            listSubcommands()
+        } else {
+            helpForSubcommand(args[0])
+        }
+    }
+
+    private fun listSubcommands() {
         println("PassMan: a password manager")
         println("Available subcommands:")
         println("create       Create a new username/password pair.")
@@ -19,4 +27,8 @@
         println()
         println("Database is ${see(DB_FILE)} .")
     }
+
+    private fun helpForSubcommand(subcom: String) {
+        runSubcommand(subcom, arrayOf<String>("--help"))
+    }
 }
--- a/src/main/kotlin/name/blackcap/passman/Main.kt	Tue Jul 02 18:18:29 2024 -0700
+++ b/src/main/kotlin/name/blackcap/passman/Main.kt	Wed Jul 03 17:14:22 2024 -0700
@@ -9,7 +9,7 @@
 import kotlin.system.exitProcess
 
 fun main(args: Array<String>) {
-    val NOPASSWORD = setOf<String>("help")
+    val NOPASSWORD = setOf<String>("help", "quit")
     if (args.isEmpty()) {
         openDatabase()
         runInteractive()
@@ -48,6 +48,7 @@
     val DISALLOWED = setOf<String>("password")
     val QUIT = setOf<String>("exit", "quit")
     var lastStatus = 0
+    println("This is PassMan interactive mode. Type help for help.")
     while (true) {
         val rawLine = System.console()?.readLine("passman> ")
         if (rawLine == null) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/kotlin/name/blackcap/passman/QuitSubcommand.kt	Wed Jul 03 17:14:22 2024 -0700
@@ -0,0 +1,13 @@
+package name.blackcap.passman
+
+// This command does nothing except print a help message if requested,
+// so that "help quit" works. The actual quit logic is hard-coded in
+// Main.kt (and needs to be, so that exit status is correct).
+class QuitSubcommand(): Subcommand() {
+    override fun run(args: Array<String>) {
+        if (args.isNotEmpty() && (args[0] == "-h" || args[0].startsWith("--h"))) {
+            println("usage: passman quit [options]")
+            println(" -h,--help             Print this help message.")
+        }
+    }
+}