Pastery

gio-mounts-debug.js +

 1const { Gio, GLib } = imports.gi; 2 3const monitor = Gio.VolumeMonitor.get(); 4 5monitor.connect('mount-added', (_, mount) => onMountAdded(mount)); 6monitor.connect('volume-added', (_, volume) => onVolumeAdded(volume)); 7 8monitor.get_mounts().forEach(onMountAdded); 9monitor.get_volumes().forEach(onVolumeAdded);1011function onMountAdded(mount) {12    print(`Mount added: ${mount}`);13    print(`  ${mount.get_name()}`);14    print(`  UUID: ${mount.get_uuid()}`);15    print(`  Icon: ${mount.get_icon().to_string()}`);16    print(`  Root: ${mount.get_root() ? mount.get_root().get_path() : 'none'}`);17    print(`  Default location: ${mount.get_default_location().get_path()}`);18    try {19        print(`  Content type: ${mount.guess_content_type_sync(true, null)}`);20    } catch (e) {}21    print(`  Drive: ${mount.get_drive()} (${mount.get_drive() ? mount.get_drive().get_name() : 'none'})`);22    print(`  Volume: ${mount.get_volume()}`);23    print(`  Shadowed: ${mount.is_shadowed()}`);24    print(`  Can umount: ${mount.can_unmount()}`);25    print(`  Can eject: ${mount.can_eject()}`);26    print('');27}2829function onVolumeAdded(volume) {30    print(`Volume added: ${volume}`);31    print(`  ${volume.get_name()}`);32    print(`  UUID: ${volume.get_uuid()}`);33    print(`  Icon: ${volume.get_icon().to_string()}`);34    print(`  Activation Root: ${volume.get_activation_root() ? volume.get_activation_root().get_path() : 'none'}`);35    print(`  Drive: ${volume.get_drive()} (${volume.get_drive() ? volume.get_drive().get_name() : 'none'})`);36    print(`  Mount: ${volume.get_mount()}`);37    print(`  Can mount: ${volume.can_mount()}`);38    print(`  Can eject: ${volume.can_eject()}`);39    print('');40}4142const loop = GLib.MainLoop.new(null, false);43GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 5, () => loop.quit());44loop.run();
New paste