add delete key command
This commit is contained in:
parent
f68d7c2c94
commit
ec40ec2d12
3 changed files with 58 additions and 2 deletions
15
cmd.go
15
cmd.go
|
|
@ -56,3 +56,18 @@ func handleUpdateKey(dbPath, userPattern, hostPattern, keyPath string) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleDeleteKey(dbPath string, id int) error {
|
||||
db, err := initDB(dbPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
err = deleteKey(db, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
20
db.go
20
db.go
|
|
@ -121,3 +121,23 @@ func updateKey(db *sql.DB, userPattern, hostPattern, keyPath string) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func deleteKey(db *sql.DB, id int) error {
|
||||
res, err := db.Exec("DELETE FROM keys WHERE id = ?;", id)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to delete key: %w", err)
|
||||
}
|
||||
|
||||
rows, err := res.RowsAffected()
|
||||
if err == nil {
|
||||
if rows == 0 {
|
||||
fmt.Printf("No key found with ID %d.\n", id)
|
||||
} else {
|
||||
fmt.Printf("Key with ID %d deleted.\n", id)
|
||||
}
|
||||
} else {
|
||||
fmt.Println("Warning: could not confirm key deletion.", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
25
main.go
25
main.go
|
|
@ -4,6 +4,7 @@ import (
|
|||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
@ -13,6 +14,7 @@ func main() {
|
|||
fmt.Fprintf(os.Stderr, " %s [flags] list-keys\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, " %s [flags] add-key <user_pattern> <host_pattern> <path_to_key>\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, " %s [flags] update-key <user_pattern> <host_pattern> <path_to_key>\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, " %s [flags] delete-key <id>\n", os.Args[0])
|
||||
fmt.Fprintf(os.Stderr, "\nFlags:\n")
|
||||
flag.PrintDefaults()
|
||||
}
|
||||
|
|
@ -65,7 +67,26 @@ func main() {
|
|||
os.Exit(1)
|
||||
}
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
startSSH(*dbPath, args)
|
||||
case "delete-key":
|
||||
if argc != 2 {
|
||||
fmt.Println("Usage: gosh delete-key <id>")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
id, err := strconv.ParseInt(args[1], 10, 32)
|
||||
if err != nil {
|
||||
fmt.Println("Error:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
err = handleDeleteKey(*dbPath, int(id))
|
||||
if err != nil {
|
||||
fmt.Println("Error:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
os.Exit(0)
|
||||
default:
|
||||
startSSH(*dbPath, args)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue