]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/gudev/gjs-example.js
journal: set secure deletion flags for FSS file
[thirdparty/systemd.git] / src / gudev / gjs-example.js
CommitLineData
bf05675a
DZ
1#!/usr/bin/env gjs-console
2
3// This currently depends on the following patches to gjs
4//
5// http://bugzilla.gnome.org/show_bug.cgi?id=584558
6// http://bugzilla.gnome.org/show_bug.cgi?id=584560
7// http://bugzilla.gnome.org/show_bug.cgi?id=584568
8
9const GUdev = imports.gi.GUdev;
10const Mainloop = imports.mainloop;
11
12function print_device (device) {
13 print (" subsystem: " + device.get_subsystem ());
14 print (" devtype: " + device.get_devtype ());
15 print (" name: " + device.get_name ());
16 print (" number: " + device.get_number ());
17 print (" sysfs_path: " + device.get_sysfs_path ());
18 print (" driver: " + device.get_driver ());
19 print (" action: " + device.get_action ());
20 print (" seqnum: " + device.get_seqnum ());
21 print (" device type: " + device.get_device_type ());
22 print (" device number: " + device.get_device_number ());
23 print (" device file: " + device.get_device_file ());
24 print (" device file symlinks: " + device.get_device_file_symlinks ());
25 print (" foo: " + device.get_sysfs_attr_as_strv ("stat"));
26 var keys = device.get_property_keys ();
27 for (var n = 0; n < keys.length; n++) {
28 print (" " + keys[n] + "=" + device.get_property (keys[n]));
29 }
30}
31
32function on_uevent (client, action, device) {
33 print ("action " + action + " on device " + device.get_sysfs_path());
34 print_device (device);
35 print ("");
36}
37
38var client = new GUdev.Client ({subsystems: ["block", "usb/usb_interface"]});
39client.connect ("uevent", on_uevent);
40
41var block_devices = client.query_by_subsystem ("block");
42for (var n = 0; n < block_devices.length; n++) {
43 print ("block device: " + block_devices[n].get_device_file ());
44}
45
46var d;
47
48d = client.query_by_device_number (GUdev.DeviceType.BLOCK, 0x0810);
49if (d == null) {
50 print ("query_by_device_number 0x810 -> null");
51} else {
52 print ("query_by_device_number 0x810 -> " + d.get_device_file ());
53 var dd = d.get_parent_with_subsystem ("usb", null);
54 print_device (dd);
55 print ("--------------------------------------------------------------------------");
56 while (d != null) {
57 print_device (d);
58 print ("");
59 d = d.get_parent ();
60 }
61}
62
63d = client.query_by_sysfs_path ("/sys/block/sda/sda1");
64print ("query_by_sysfs_path (\"/sys/block/sda1\") -> " + d.get_device_file ());
65
66d = client.query_by_subsystem_and_name ("block", "sda2");
67print ("query_by_subsystem_and_name (\"block\", \"sda2\") -> " + d.get_device_file ());
68
69d = client.query_by_device_file ("/dev/sda");
70print ("query_by_device_file (\"/dev/sda\") -> " + d.get_device_file ());
71
72d = client.query_by_device_file ("/dev/block/8:0");
73print ("query_by_device_file (\"/dev/block/8:0\") -> " + d.get_device_file ());
74
75Mainloop.run('udev-example');