mirror of
https://github.com/restic/restic.git
synced 2026-05-25 11:35:24 +00:00
Add command "key rm"
This commit is contained in:
+23
-2
@@ -54,9 +54,23 @@ func add_key(be backend.Server, key *khepri.Key) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func delete_key(be backend.Server, key *khepri.Key, id backend.ID) error {
|
||||
if id.Equal(key.ID()) {
|
||||
return errors.New("refusing to remove key currently used to access repository")
|
||||
}
|
||||
|
||||
err := be.Remove(backend.Key, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Printf("removed key %v\n", id)
|
||||
return nil
|
||||
}
|
||||
|
||||
func commandKey(be backend.Server, key *khepri.Key, args []string) error {
|
||||
if len(args) < 1 {
|
||||
return errors.New("usage: key [list|add]")
|
||||
if len(args) < 1 || (args[0] == "rm" && len(args) != 2) {
|
||||
return errors.New("usage: key [list|add|rm] [ID]")
|
||||
}
|
||||
|
||||
switch args[0] {
|
||||
@@ -64,6 +78,13 @@ func commandKey(be backend.Server, key *khepri.Key, args []string) error {
|
||||
return list_keys(be, key)
|
||||
case "add":
|
||||
return add_key(be, key)
|
||||
case "rm":
|
||||
id, err := backend.Find(be, backend.Key, args[1])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return delete_key(be, key, id)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user