When a folder is created on the client, also create it on the server

This commit is contained in:
2024-05-16 21:15:16 -04:00
parent e727242e90
commit 8bd6bfe8ab
2 changed files with 24 additions and 24 deletions
-23
View File
@@ -1,23 +0,0 @@
package backend
import (
"fmt"
"os"
)
// AddFolder creates a new directory at targetLocation
func AddFolder(targetLocation string) {
// create the directory specified by targetLocation
err := os.Mkdir(targetLocation, 0700)
if err != nil {
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
os.Exit(0)
}
+24 -1
View File
@@ -90,7 +90,7 @@ func Shear(targetLocationIncomplete string, deviceID string) {
}
}
}
} else { // if running on the client... (online mode determined dynamically in GetSSHOutput, will simply exit if not in online mode)
} else { // if running on the client... (online mode determined dynamically in GetSSHOutput, will silently exit if not in online mode)
// determine client device ID (to send to server, avoids creating a deletion file for the client device)
deviceID = deviceIDList[0].Name()
// below: deviceID and targetLocationIncomplete are separated by \x1d, path separators are replaced with \x1e, and spaces are replaced with \x1f
@@ -99,3 +99,26 @@ func Shear(targetLocationIncomplete string, deviceID string) {
os.Exit(0)
}
// AddFolder creates a new directory at targetLocation
// if running on the client, it will also call the server to create the directory
func AddFolder(targetLocationIncomplete string, onServer bool) {
// get the full targetLocation path and create the target
targetLocationComplete := backend.TargetLocationFormat(targetLocationIncomplete[1:])
err := os.Mkdir(targetLocationComplete, 0700)
if err != nil {
if os.IsExist(err) {
fmt.Println(backend.AnsiError + "Directory already exists" + backend.AnsiReset)
os.Exit(1)
} else {
fmt.Println(backend.AnsiError + "Failed to create directory: " + err.Error() + backend.AnsiReset)
os.Exit(1)
}
}
if !onServer { // if running on the client... (online mode determined dynamically in GetSSHOutput, will silently exit if not in online mode)
GetSSHOutput("libmuttonserver addfolder "+strings.ReplaceAll(targetLocationIncomplete, " ", "\x1f"), false)
}
os.Exit(0)
}