summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2009-06-02 11:56:40 -0400
committerDavid Zeuthen <davidz@redhat.com>2009-06-02 11:56:40 -0400
commit3befbb1e3daf9d7979f169d834bd3e3fb9d7c9ad (patch)
treec3fdece93a5232504fd54641aa8d27b2151d908a
parent4d22850eb911362f323b40044fd0732169a762b4 (diff)
gudev: split Javascript examples into gjs and seed specific files
-rwxr-xr-xgudev/gjs-example.js75
-rwxr-xr-xgudev/seed-example.js (renamed from gudev/example.js)23
2 files changed, 89 insertions, 9 deletions
diff --git a/gudev/gjs-example.js b/gudev/gjs-example.js
new file mode 100755
index 0000000..5586fd6
--- /dev/null
+++ b/gudev/gjs-example.js
@@ -0,0 +1,75 @@
+#!/usr/bin/env gjs-console
+
+// This currently depends on the following patches to gjs
+//
+// http://bugzilla.gnome.org/show_bug.cgi?id=584558
+// http://bugzilla.gnome.org/show_bug.cgi?id=584560
+// http://bugzilla.gnome.org/show_bug.cgi?id=584568
+
+const GUdev = imports.gi.GUdev;
+const Mainloop = imports.mainloop;
+
+function print_device (device) {
+ print (" subsystem: " + device.get_subsystem ());
+ print (" devtype: " + device.get_devtype ());
+ print (" name: " + device.get_name ());
+ print (" number: " + device.get_number ());
+ print (" sysfs_path: " + device.get_sysfs_path ());
+ print (" driver: " + device.get_driver ());
+ print (" action: " + device.get_action ());
+ print (" seqnum: " + device.get_seqnum ());
+ print (" device type: " + device.get_device_type ());
+ print (" device number: " + device.get_device_number ());
+ print (" device file: " + device.get_device_file ());
+ print (" device file symlinks: " + device.get_device_file_symlinks ());
+ print (" foo: " + device.get_sysfs_attr_as_strv ("stat"));
+ var keys = device.get_property_keys ();
+ for (var n = 0; n < keys.length; n++) {
+ print (" " + keys[n] + "=" + device.get_property (keys[n]));
+ }
+}
+
+function on_uevent (client, action, device) {
+ print ("action " + action + " on device " + device.get_sysfs_path());
+ print_device (device);
+ print ("");
+}
+
+var client = new GUdev.Client ({subsystems: ["block", "usb/usb_interface"]});
+client.connect ("uevent", on_uevent);
+
+var block_devices = client.query_by_subsystem ("block");
+for (var n = 0; n < block_devices.length; n++) {
+ print ("block device: " + block_devices[n].get_device_file ());
+}
+
+var d;
+
+d = client.query_by_device_number (GUdev.DeviceType.BLOCK, 0x0810);
+if (d == null) {
+ print ("query_by_device_number 0x810 -> null");
+} else {
+ print ("query_by_device_number 0x810 -> " + d.get_device_file ());
+ var dd = d.get_parent_with_subsystem ("usb", null);
+ print_device (dd);
+ print ("--------------------------------------------------------------------------");
+ while (d != null) {
+ print_device (d);
+ print ("");
+ d = d.get_parent ();
+ }
+}
+
+d = client.query_by_sysfs_path ("/sys/block/sda/sda1");
+print ("query_by_sysfs_path (\"/sys/block/sda1\") -> " + d.get_device_file ());
+
+d = client.query_by_subsystem_and_name ("block", "sda2");
+print ("query_by_subsystem_and_name (\"block\", \"sda2\") -> " + d.get_device_file ());
+
+d = client.query_by_device_file ("/dev/sda");
+print ("query_by_device_file (\"/dev/sda\") -> " + d.get_device_file ());
+
+d = client.query_by_device_file ("/dev/block/8:0");
+print ("query_by_device_file (\"/dev/block/8:0\") -> " + d.get_device_file ());
+
+Mainloop.run('udev-example');
diff --git a/gudev/example.js b/gudev/seed-example.js
index 93aa118..e2ac324 100755
--- a/gudev/example.js
+++ b/gudev/seed-example.js
@@ -1,5 +1,6 @@
+#!/usr/bin/env seed
-// right now this only works with seed(1)
+// seed example
const GLib = imports.gi.GLib;
const GUdev = imports.gi.GUdev;
@@ -41,14 +42,18 @@ for (var n = 0; n < block_devices.length; n++) {
var d;
d = client.query_by_device_number (GUdev.DeviceType.BLOCK, 0x0810);
-print ("query_by_device_number 0x810 -> " + d.get_device_file ());
-dd = d.get_parent_with_subsystem ("usb", null);
-print_device (dd);
-print ("--------------------------------------------------------------------------");
-while (d != null) {
- print_device (d);
- print ("");
- d = d.get_parent ();
+if (d == null) {
+ print ("query_by_device_number 0x810 -> null");
+} else {
+ print ("query_by_device_number 0x810 -> " + d.get_device_file ());
+ dd = d.get_parent_with_subsystem ("usb", null);
+ print_device (dd);
+ print ("--------------------------------------------------------------------------");
+ while (d != null) {
+ print_device (d);
+ print ("");
+ d = d.get_parent ();
+ }
}
d = client.query_by_sysfs_path ("/sys/block/sda/sda1");