udiskie is a simple daemon that uses udisks to automatically mount removable storage devices.
udiskie requires permission for the org.freedesktop.udisks.filesystem-mount as well as the org.freedesktop.udisks.luks-unlock action. This is usually granted in sessions launched with ConsoleKit support. If run outside a desktop manager with ConsoleKit support, the permission can be granted using PolicyKit by creating a file called 10-udiskie.pkla in /etc/polkit-1/localauthority/50-local.d with these contents:
[udiskie] Identity=unix-group:storage Action=org.freedesktop.udisks.filesystem-mount ResultAny=yes
This configuration allows all members of the storage group to run udiskie.
Alternatively, to allow these actions to be executed for inactive sessions, modify the file /usr/share/polkit-1/actions/org.freedesktop.udisks.policy. Make sure to change the setting for allow_inactive to 'yes':
<action id="org.freedesktop.udisks.filesystem-mount"> <description>Mount a device</description> <message>Authentication is required to mount the device</message> <defaults> <allow_any>yes</allow_any> <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> ... <action id="org.freedesktop.udisks.luks-unlock"> <description>Unlock an encrypted device</description> <message>Authentication is required to unlock an encrypted device</message> <defaults> <allow_any>no</allow_any> <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action>
udiskie is developed on github. Feel free to contribute patches as pull requests as you see fit.
Try to be consistent with PEP 8 guidelines as far as possible and test everything. Furthermore, your commit messages should start with a capitalized verb for consistency. Unless your modification is completely trivial, also add a message body to your commit.
Where possible dependency injection should be used to keep the module easily testable.