Fix init if devices directory does not exist/is empty

This commit is contained in:
2024-08-13 20:21:11 -04:00
parent b1fc8e3c4d
commit be46b0d6b2
5 changed files with 25 additions and 17 deletions
+8 -2
View File
@@ -53,7 +53,7 @@ func GpgKeyGen() string {
}
// DirInit creates the libmutton directories.
// Returns: oldDeviceID (from before the directory reset).
// Returns: oldDeviceID (from before the directory reset; will be sync.FSMisc if there is no pre-existing ID).
func DirInit(preserveOldConfigDir bool) string {
// create EntryRoot
err := os.MkdirAll(EntryRoot, 0700)
@@ -63,7 +63,13 @@ func DirInit(preserveOldConfigDir bool) string {
}
// get old device ID before its potential removal
oldDeviceID := (*GenDeviceIDList(false))[0].Name() // errorOnFail set to false to ignore error if device ID directory does not exist (error non-critical for this function)
oldDeviceIDList := GenDeviceIDList(false) // errorOnFail is false so that nil is received when the devices directory does not exist
var oldDeviceID string
if oldDeviceIDList != nil && len(*oldDeviceIDList) > 0 { // ensure not derferencing nil, which occurs when the devices directory does not exist
oldDeviceID = (*oldDeviceIDList)[0].Name()
} else {
oldDeviceID = "\u259f" // sync.FSMisc cannot be used directly due to import cycle; indicates to server that no device ID is being replaced
}
// remove existing config directory (if it exists and not in append mode)
if !preserveOldConfigDir {