package global import ( "errors" "io/fs" "os" ) // GetCurrentDeviceID returns the current device ID or // nil if there is no device ID (e.g. first run). func GetCurrentDeviceID() (*string, error) { deviceIDList, err := GenDeviceIDList() if err != nil { return nil, errors.New("unable to generate device ID list: " + err.Error()) } var deviceID string if len(deviceIDList) > 0 { deviceID = (deviceIDList)[0].Name() } else { return nil, nil // nil device ID indicates to server that no device ID is being replaced } return &deviceID, nil } // GenDeviceIDList returns a slice of all registered device IDs. // Requires: errorOnFail (set to true to throw an error if the devices directory cannot be read/does not exist) func GenDeviceIDList() ([]fs.DirEntry, error) { // create a slice of all registered devices deviceIDList, err := os.ReadDir(CfgDir + PathSeparator + "devices") if err != nil { return nil, errors.New("unable to read devices directory: " + err.Error()) } return deviceIDList, nil }