## Summary
Create a Python widget interface as a front end to scripts, which are used to syncronise the contents of folders on attached devices.
## Intro
Storage devices (such as Hard Drives and USB Pendrives) may have a config file listing special subfolders called Libraries. Where the same Library exists on more than one device, each Pair of Libraries will be added to a list, so the user can pick which they want to sync. Each Pair will be added to the list twice, one for each direction of sync (e.g. one option for [Library - Device 1 to Device 2] AND another option for [Library - Device 2 to Device 1]). The user will be allowed to pick a Pair of Libraries then click a button to choose what type of sync command to run against the libraries. Once they choose a Pair and click a Command button clicked, a stub function should be called - this would would execute their chosen sync script, but is outside the scope of this project.
## Functional specification - logic flow
* Enumerate all attached file storage Devices, including Hard Drives, SD (Flash memory) cards, USB pendrives, external storage drives
* Check each attached Device to see if there is a config file containing the Library List
* Read the following string type info from each XML config file found:
- DeviceID, DeviceName, DeviceOptions
- Zero or more Libraries with:(Type, Id, LibraryOptions, FolderPath)
* Check the list of Libraries read in, and where the same LibraryType appears on more than one Device, add a pair of option entries for the user to choose
* Display the interface and allow the user to:
- pick one of the library option entries
- choose one of the Command options:
- Show Differences
- Add and Update
- Mirror
## Stub to interface to other scripts to be used
* Once they have chosen the entry with the Pair of Libraries they want, and clicked the Command button, execute the following function stub
ExecuteSyncCommand (ChosenCommand, LibraryType, LibraryID, LibraryOptions, SourceDrive, SourceFolderPath, DestDrive, DestFolderPath)
##
Able to help using the PyQt, wxPython or PyGTK library (whatever you feel suits best), and interface with the ExecuteSyncCommand() of the CLI script as per requirement.