From 8704ba69727d07814c531ef76da9e1b446b4cb47 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Tue, 5 Mar 2024 11:52:33 -0500 Subject: [PATCH] Implement ability to add folders/directories (offline) --- main.go | 13 +++++++------ src/offline/add.go | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 src/offline/add.go diff --git a/main.go b/main.go index 1fb4b7a..fae1b54 100644 --- a/main.go +++ b/main.go @@ -51,7 +51,7 @@ func main() { switch args[2] { case "copy": - var field int + var field int // indicates which (numbered) field to copy switch args[3] { case "password", "-p": field = 0 @@ -83,14 +83,15 @@ func main() { } // TODO offline.EditEntry(targetLocation, field), exit after run case "add": - var field rune - field = field // TODO temporary to avoid unused variable error + var field bool // indicates whether to add a password or note + field = field // TODO temporary to avoid unused variable error switch args[3] { case "password", "-p": - field = 'p' + field = true case "note", "-n": - field = 'n' - case "folder", "-f": // TODO offline.AddFolder(targetLocation), exit after run + field = false + case "folder", "-f": + offline.AddFolder(targetLocation) default: cli.HelpAdd() } diff --git a/src/offline/add.go b/src/offline/add.go new file mode 100644 index 0000000..610c5f9 --- /dev/null +++ b/src/offline/add.go @@ -0,0 +1,22 @@ +package offline + +import ( + "fmt" + "os" +) + +func AddFolder(targetLocation string) { + // create the directory specified by targetLocation + err := os.Mkdir(targetLocation, 0700) + if err != nil { + // if the directory already exists, print an error message and exit + if os.IsExist(err) { + fmt.Println(AnsiError + "Directory already exists" + AnsiReset) + os.Exit(1) + } else { + fmt.Println(AnsiError + "Failed to create directory: " + err.Error() + AnsiReset) + os.Exit(1) + } + } + // TODO If in online mode, create the directory on the server +}