Skip to content

komola/node-udev-ext-media

 
 

Repository files navigation

Node Module udev-ext-media

  • This module is optimized to receive add / remove events of DVDs, USB-Storage- and SDCARD-Devices
  • Filters SATA-HDDs to prevent add / remove for installed harddrives (which contain OS data etc.)
  • Filters all devices which are not intended for external storage
  • List-Function lists only available DVDs, USB- and SDCARD-Devices

Derived Codebase (node-udev): https://github.com/cheery/node-udev ##For what Use-Case? I use this for a node application, which is intended to mount storage devices as soon as they get plugged in. On startup, there are no events so I also wanted to list all available devices. Since I don't consider my builtin HDD as an external storage, I filter all SATA-featured HDDs like /dev/sda.

I put a lot of effort into the device recognition, so no virtual device events slip through. UDEV raises a lot of events and I don't want to manage those in my node-application (i.e. DVD-Drives raise 2 events, although 1 event is important for the add-event)

Feel free to use this module on your own demand.

##Installation This package is not featured in NPM, you have to add this file in your package.json file:

Part of package.json:

{
    "name" : "myproject",
    "version" : "1.0",
    ...
    ...
    "dependencies" : {
        "udev-ext-media" : "git+ssh://[email protected]:magicpat/node-udev.git"
    }
}

After adding this dependency, just download by entering npm install

##Usage After installation, access the udev module

var udev = require("udev-ext-media");

var monitor = udev.monitor();

//Device has member attributes as given by UDEV
monitor.on("add", function(device){
    console.log(device.MEDIA_TYPE); //Will output "usb", "dvd", "sdcard", else "unknown"  
});

Check out the examples and test directory for more code examples.

##Development For development, use GRUNT to run the mocha tests. Since these tests are targeted to connected hardware, insert various DVD, USB, SDCARD, HDD devices before starting the tests.

Run one-time tests

grunt test

Filewatcher tests

grunt watch:mocha

Grunt will launch tests as soon as udev.cc, udev.js or any spec-files change

##Credit All credit for the essential base goes to Github-user cheery! https://github.com/cheery

About

Bindings to libudev

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 62.1%
  • JavaScript 30.1%
  • Shell 6.4%
  • Python 1.4%