| #!/usr/bin/python |
| |
| import gobject |
| |
| import dbus |
| import dbus.mainloop.glib |
| from optparse import OptionParser |
| |
| def parse_options(): |
| parser.add_option("-d", "--device", dest="device", |
| help="Device to connect", metavar="DEVICE") |
| parser.add_option("-c", "--chdir", dest="new_dir", |
| help="Change current directory to DIR", metavar="DIR") |
| parser.add_option("-l", "--lsdir", action="store_true", dest="ls_dir", |
| help="List folders in current directory") |
| parser.add_option("-v", "--verbose", action="store_true", dest="verbose") |
| parser.add_option("-L", "--lsmsg", action="store", dest="ls_msg", |
| help="List messages in supplied CWD subdir") |
| |
| return parser.parse_args() |
| |
| def set_folder(session, new_dir): |
| for node in new_dir.split("/"): |
| session.SetFolder(node) |
| |
| if __name__ == '__main__': |
| |
| dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) |
| |
| parser = OptionParser() |
| |
| (options, args) = parse_options() |
| |
| if not options.device: |
| parser.print_help() |
| exit(0) |
| |
| bus = dbus.SessionBus() |
| mainloop = gobject.MainLoop() |
| |
| client = dbus.Interface(bus.get_object("org.openobex.client", "/"), |
| "org.openobex.Client") |
| |
| session_path = client.CreateSession({ "Destination": options.device, |
| "Target": "map"}) |
| |
| session = dbus.Interface(bus.get_object("org.openobex.client", session_path), |
| "org.openobex.Session") |
| |
| map = dbus.Interface(bus.get_object("org.openobex.client", session_path), |
| "org.openobex.MessageAccess") |
| |
| if options.new_dir: |
| set_folder(map, options.new_dir) |
| |
| if options.ls_dir: |
| print map.GetFolderListing(dict()) |
| |
| if options.ls_msg is not None: |
| print map.GetMessageListing(options.ls_msg, dict()) |
| |
| mainloop.run() |