yui3skins

simple utility to derive the list of skins that a yui3 module supports based on its directory structure

npm install yui3skins
7 downloads in the last month
yui3skins
=========

simple nodejs utility to derive the list of skins that a yui3 module supports based on its directory structure and its meta json file.

Scans each subdirectory in `dir`, and searches for `<mod>/assets/skins/<skins>` directories. Adds each directory in skins to the output json. Reads the module's meta json file to determine if the skins belong to a submodule instead of the parent module. For example, see https://github.com/yui/yui3/blob/master/src/slider/meta/slider.json. In the case of `slider`, the skins belong to the `slider-base` submodule and not the `slider` parent module.

Installation
------------

    npm install yui3skins

Usage
-----
### in a nodejs script

    dir
      module1
       assets
         skins
           skin1
           skin2
       js
       ...
      module2
       js
       ...
      module3
       assets
         skins
           skin2
           skin3
       ...

  ```javascript
  var skins = require('yui3skins');

  // output contents to a file
  skins.scan('dir', './path/to/out.json');
  ```

outputs the following to `./path/to/out.json`:

  ```javascript
  {
   module1: "skin1,skin2",
   module3: "skin2,skin3"
  }
  ```

Alternatively, you can supply a callback function which receives the the meta
data object as it's only argument:

  ```javascript
  skins.scan('./dir', null, function(skinHash) {
    // skin data available
  });
  ```

### from the command line

The following will output the same as the above example:

    yui3skins -d ./dir -o ./path/to/out.json

assuming you installed yui3skins using npm's global (`-g`) flag. Otherwise,
you'll need to run it using the node executable and from the node_modules
directory:

    cd node_modules
    node yui3skins -d ./dir -o ./path/to/out.json
npm loves you