tart login: introduce --username and --password-stdin flags (#143)

This commit is contained in:
Nikolay Edigaryev 2022-07-05 16:32:20 +03:00 committed by GitHub
parent 85429cea0a
commit 4386192161
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 1 deletions

View File

@ -8,9 +8,32 @@ struct Login: AsyncParsableCommand {
@Argument(help: "host")
var host: String
@Option(help: "username")
var username: String
@Flag(help: "password-stdin")
var passwordStdin: Bool = false
func validate() throws {
let usernameProvided = !username.isEmpty
let passwordProvided = passwordStdin
if usernameProvided != passwordProvided {
throw ValidationError("both --username and --password-stdin are required")
}
}
func run() async throws {
do {
let (user, password) = try StdinCredentials.retrieve()
var user: String
var password: String
if !username.isEmpty {
user = username
password = readLine()!
} else {
(user, password) = try StdinCredentials.retrieve()
}
let credentialsProvider = DictionaryCredentialsProvider([
host: (user, password)
])