mirror of
https://github.com/rwinkhart/MUTN.git
synced 2026-08-27 20:36:29 -04:00
When a folder is created on the client, also create it on the server
This commit is contained in:
@@ -24,6 +24,9 @@ func main() {
|
||||
deviceIDTargetLocation := strings.Split(args[2], "\x1d")
|
||||
targetLocationIncomplete := strings.ReplaceAll(strings.ReplaceAll(deviceIDTargetLocation[1], "\x1f", " "), "\x1e", backend.PathSeparator)
|
||||
sync.Shear(targetLocationIncomplete, deviceIDTargetLocation[0])
|
||||
case "addfolder":
|
||||
// add a new folder to the server
|
||||
sync.AddFolder(strings.ReplaceAll(args[2], "\x1f", " "), true)
|
||||
case "register":
|
||||
// register a new device ID
|
||||
os.Create(backend.ConfigDir + backend.PathSeparator + "devices" + backend.PathSeparator + args[2])
|
||||
|
||||
@@ -142,7 +142,7 @@ func main() {
|
||||
case "note", "-n":
|
||||
cli.AddEntry(targetLocation, true, 2)
|
||||
case "folder", "-f":
|
||||
backend.AddFolder(targetLocation)
|
||||
sync.AddFolder(args[1], false)
|
||||
default:
|
||||
cli.HelpAdd()
|
||||
}
|
||||
|
||||
@@ -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
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user