#!/usr/bin/ruby # http://trac.luon.net/data/ruby-dbus/tutorial/basic_client.html # http://projects.gnome.org/NetworkManager/developers/spec.html require 'dbus' bus = DBus::SystemBus.instance nm_service = bus.service("org.freedesktop.NetworkManager") nm_manager = nm_service.object("/org/freedesktop/NetworkManager") poi = DBus::ProxyObjectInterface.new(nm_manager, "org.freedesktop.NetworkManager") poi.define_method("GetDevices", "") puts "Devices:" p poi.GetDevices puts st_service = bus.service("org.freedesktop.NetworkManagerSystemSettings") st_service.introspect puts "Service.root:" p st_service.root puts nms = st_service.object("/org/freedesktop/NetworkManagerSettings") sett = DBus::ProxyObjectInterface.new(nms, "org.freedesktop.NetworkManagerSettings") sett.define_method("ListConnections","") cons = sett.ListConnections[0] puts "Connections:" for x in cons puts "Con: #{x}" c = st_service.object(x) p = DBus::ProxyObjectInterface.new(c,"org.freedesktop.NetworkManagerSettings.Connection") p.define_method("GetSettings","") puts c s = p.GetSettings puts s.class puts s[0].class for k,v in s[0] print " #{k}: " for kk,vv in v print "#{kk} -> #{vv} " end puts end puts end