mirror of
https://github.com/rwinkhart/libmutton.git
synced 2026-09-03 15:47:27 -04:00
Handle remaining errors in sync/client.go
This commit is contained in:
+19
-4
@@ -35,6 +35,7 @@ func GetSSHClient(manualSync bool) (*ssh.Client, string, bool) {
|
|||||||
|
|
||||||
var user, ip, port, keyFile, keyFileProtected, entryRoot string
|
var user, ip, port, keyFile, keyFileProtected, entryRoot string
|
||||||
var isWindows bool
|
var isWindows bool
|
||||||
|
var err error
|
||||||
for i, key := range sshUserConfig {
|
for i, key := range sshUserConfig {
|
||||||
switch i {
|
switch i {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -50,7 +51,11 @@ func GetSSHClient(manualSync bool) (*ssh.Client, string, bool) {
|
|||||||
case 5:
|
case 5:
|
||||||
entryRoot = key
|
entryRoot = key
|
||||||
case 6:
|
case 6:
|
||||||
isWindows, _ = strconv.ParseBool(key)
|
isWindows, err = strconv.ParseBool(key)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(core.AnsiError + "Sync failed - Unable to parse server OS type: " + err.Error() + core.AnsiReset)
|
||||||
|
os.Exit(101)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,7 +79,8 @@ func GetSSHClient(manualSync bool) (*ssh.Client, string, bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// read known hosts file
|
// read known hosts file
|
||||||
hostKeyCallback, err := knownhosts.New(core.Home + core.PathSeparator + ".ssh" + core.PathSeparator + "known_hosts")
|
var hostKeyCallback ssh.HostKeyCallback
|
||||||
|
hostKeyCallback, err = knownhosts.New(core.Home + core.PathSeparator + ".ssh" + core.PathSeparator + "known_hosts")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(core.AnsiError + "Sync failed - Unable to read known hosts file: " + err.Error() + core.AnsiReset)
|
fmt.Println(core.AnsiError + "Sync failed - Unable to read known hosts file: " + err.Error() + core.AnsiReset)
|
||||||
os.Exit(101)
|
os.Exit(101)
|
||||||
@@ -149,7 +155,11 @@ func getRemoteDataFromClient(sshClient *ssh.Client, manualSync bool) (map[string
|
|||||||
fmt.Println(core.AnsiError + "Sync failed - Unable to fetch remote data; server returned an unexpected response" + core.AnsiReset)
|
fmt.Println(core.AnsiError + "Sync failed - Unable to fetch remote data; server returned an unexpected response" + core.AnsiReset)
|
||||||
os.Exit(103)
|
os.Exit(103)
|
||||||
}
|
}
|
||||||
serverTime, _ := strconv.ParseInt(outputSlice[0], 10, 64)
|
serverTime, err := strconv.ParseInt(outputSlice[0], 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(core.AnsiError+"Sync failed - Unable to parse server time: ", err.Error()+core.AnsiReset)
|
||||||
|
os.Exit(101)
|
||||||
|
}
|
||||||
entries := strings.Split(outputSlice[1], FSMisc)[1:]
|
entries := strings.Split(outputSlice[1], FSMisc)[1:]
|
||||||
modsStrings := strings.Split(outputSlice[2], FSMisc)[1:]
|
modsStrings := strings.Split(outputSlice[2], FSMisc)[1:]
|
||||||
folders := strings.Split(outputSlice[3], FSMisc)[1:]
|
folders := strings.Split(outputSlice[3], FSMisc)[1:]
|
||||||
@@ -157,8 +167,13 @@ func getRemoteDataFromClient(sshClient *ssh.Client, manualSync bool) (map[string
|
|||||||
|
|
||||||
// convert the mod times to int64
|
// convert the mod times to int64
|
||||||
var mods []int64
|
var mods []int64
|
||||||
|
var mod int64
|
||||||
for _, modString := range modsStrings {
|
for _, modString := range modsStrings {
|
||||||
mod, _ := strconv.ParseInt(modString, 10, 64)
|
mod, err = strconv.ParseInt(modString, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(core.AnsiError+"Sync failed - Unable to parse mod time: ", err.Error()+core.AnsiReset)
|
||||||
|
os.Exit(101)
|
||||||
|
}
|
||||||
mods = append(mods, mod)
|
mods = append(mods, mod)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user