Mercurial > cgi-bin > hgweb.cgi > PassMan
view src/main/kotlin/name/blackcap/passman/Entry.kt @ 5:ad997df1f560
Fix see() to be about as good as sccc.
author | David Barts <n5jrn@me.com> |
---|---|
date | Sun, 11 Sep 2022 21:29:20 -0700 |
parents | 3c792ad36b3d |
children | f245b9a53495 |
line wrap: on
line source
package name.blackcap.passman import java.util.* class Entry(val name: String, val username: String, val password: CharArray, val notes: String, val created: Date? = null, val modified: Date? = null, val accessed: Date? = null) { companion object { fun withPromptedPassword() = Entry( name = _getName(), username = _getUsername(), password = _getPassword(), notes = _getNotes() ) fun withGeneratedPassword(length: Int, allowSymbols: Boolean, verbose: Boolean): Entry { return Entry( name = _getName(), username = _getUsername(), password = _genPassword(length, allowSymbols, verbose), notes = _getNotes() ) } private fun _genPassword(length: Int, allowSymbols: Boolean, verbose: Boolean): CharArray { val generated = generate(length, allowSymbols) if (verbose) { printPassword(generated) } return generated } private fun _getName() = mustReadLine("Name of site: ") private fun _getUsername() = mustReadLine("Username: ") private fun _getPassword() = mustGetPassword("Password: ", verify = true) private fun _getNotes() = readLine("Notes: ") } fun print(redactPassword: String? = null) { println("Name of site: $name") println("Username: $username") if (redactPassword == null) { printPassword(password) } else { println("Password: $redactPassword") } } fun printLong(redactPassword: String? = null) { print(redactPassword) println("Notes: $notes") printDate("Created", created) printDate("Modified", modified) printDate("Accessed", accessed) } private fun printDate(tag: String, date: Date?) { kotlin.io.print("${tag}: ") if (date == null) { println("never") } else { println(ISO8601.format(date)) } } }