Implement entry/directory renaming/moving

This commit is contained in:
2024-03-07 17:40:57 -05:00
parent 609ef9bd8c
commit 9f1955eb82
6 changed files with 46 additions and 5 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ _mutn_completions() {
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "password username url note" -- "$cur" )
;;
edit )
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "password username url note relocate" -- "$cur" )
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "password username url note rename" -- "$cur" )
;;
gen )
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "update" -- "$cur" )
+1 -1
View File
@@ -22,7 +22,7 @@ case ${words[-2]} in
compadd {password,username,url,note}
;;
edit )
compadd {password,username,url,note,relocate}
compadd {password,username,url,note,rename}
;;
gen )
compadd update
+3 -2
View File
@@ -79,9 +79,10 @@ func main() {
field = 'l'
case "note", "-n":
field = 'n'
case "rename", "-r": // TODO prompt for newLocation, offline.Rename(targetLocation, newLocation), exit after run
case "rename", "-r":
cli.RenameCli(targetLocation)
default:
cli.HelpCopy()
cli.HelpEdit()
}
// TODO offline.EditEntry(targetLocation, field), exit after run
case "add":
+15
View File
@@ -0,0 +1,15 @@
package cli
import "github.com/rwinkhart/MUTN/src/offline"
// RenameCli renames an entry at oldLocation to a new location (user input)
func RenameCli(oldLocation string) {
// ensure targetLocation exists
offline.TargetIsFile(oldLocation, true, 0)
// prompt user for new location and rename
newLocation := offline.EntryRoot + offline.PathSeparator + input("New location:")
offline.Rename(oldLocation, newLocation)
// exit is done from offline.Rename
}
+1 -1
View File
@@ -37,7 +37,7 @@ This program comes with absolutely no warranty; type "mutn version" for details.
note/-n Add a note entry
folder/-f Add a new folder for entries
edit:
rename/relocate/-r Rename or relocate an entry
rename/-r Rename or relocate an entry
username/-u Change the username of an entry
password/-p Change the password of an entry
url/-l Change the url attached to an entry
+25
View File
@@ -0,0 +1,25 @@
package offline
import (
"fmt"
"os"
)
// Rename renames oldLocation to newLocation
func Rename(oldLocation string, newLocation string) {
// ensure newLocation does not exist
_, isAccessible := TargetIsFile(newLocation, false, 0)
if isAccessible {
fmt.Println(AnsiError + "\"" + newLocation + "\" already exists" + AnsiReset)
os.Exit(1)
}
// rename oldLocation to newLocation
err := os.Rename(oldLocation, newLocation)
if err != nil {
fmt.Println(AnsiError + "Failed to rename - does the target containing directory exists?" + AnsiReset)
}
// TODO If in online mode, check if oldLocation is a directory and rename it on the server
os.Exit(0)
}