diff --git a/libmuttonserver.go b/libmuttonserver.go index ae2a5aa..88b93c8 100644 --- a/libmuttonserver.go +++ b/libmuttonserver.go @@ -1,9 +1,28 @@ package main import ( + "fmt" + "github.com/rwinkhart/MUTN/src/backend" "github.com/rwinkhart/MUTN/src/sync" + "os" + "strings" ) func main() { - sync.GetRemoteDataFromServer() + args := os.Args + if len(args) < 2 { + fmt.Println(backend.AnsiError + "No arguments supplied" + backend.AnsiReset) // TODO add server help menu + os.Exit(0) + } + + switch args[1] { + case "fetch": + sync.GetRemoteDataFromServer() + case "shear": + deviceIDTargetLocation := strings.Split(args[2], "\x1d") + targetLocationIncomplete := strings.ReplaceAll(strings.ReplaceAll(deviceIDTargetLocation[1], "\x1f", " "), "\x1e", backend.PathSeparator) + sync.Shear(targetLocationIncomplete, deviceIDTargetLocation[0]) + default: + fmt.Println(backend.AnsiError + "Invalid argument" + backend.AnsiReset) // TODO add server help menu + } } diff --git a/mutn.go b/mutn.go index 99eb3a3..3ded61e 100644 --- a/mutn.go +++ b/mutn.go @@ -45,7 +45,7 @@ func main() { case "add": cli.AddEntry(targetLocation, true, 0) case "shear": - backend.Shear(targetLocation) + sync.Shear(args[1], "") // pass the incomplete path for cleaner formatting in server deletions directory default: cli.HelpMain() } diff --git a/src/cli/init.go b/src/cli/init.go index f08ad94..e1bdde4 100644 --- a/src/cli/init.go +++ b/src/cli/init.go @@ -34,6 +34,7 @@ func TempInitCli() { deviceIDPrefix, _ := os.Hostname() deviceIDSuffix := backend.StringGen(rand.Intn(48)+48, true, 0.2) deviceID := deviceIDPrefix + "-" + deviceIDSuffix + os.Create(backend.ConfigDir + backend.PathSeparator + "devices" + backend.PathSeparator + deviceID) // TODO remove existing device ID file if it exists, copy device ID to server // necessary SSH info sshUser := input("Remote SSH username:") @@ -42,7 +43,7 @@ func TempInitCli() { sshIdentity := input("SSH private identity file path:") // TODO implement generator and selector // write config file - backend.TempInit(map[string]string{"textEditor": textEditor, "gpgID": gpgID, "deviceID": deviceID, "sshUser": sshUser, "sshIP": sshIP, "sshPort": sshPort, "sshIdentity": sshIdentity}) + backend.TempInit(map[string]string{"textEditor": textEditor, "gpgID": gpgID, "sshUser": sshUser, "sshIP": sshIP, "sshPort": sshPort, "sshIdentity": sshIdentity}) } else { // write config file backend.TempInit(map[string]string{"textEditor": textEditor, "gpgID": gpgID})