Projekt

Obecné

Profil

Stáhnout (1.11 KB) Statistiky
| Větev: | Revize:
1
#!/usr/bin/env node
2

    
3
var request   = require('request')
4
  , fs        = require('fs')
5

    
6
  , uvheadloc = 'https://raw.github.com/joyent/libuv/master/include/uv.h'
7
  , defreg    = /^\s*XX\(\s*([\-\d]+),\s*([A-Z]+),\s*"([^"]*)"\s*\)\s*\\?$/
8

    
9

    
10
request(uvheadloc, function (err, response) {
11
  if (err)
12
    throw err
13

    
14
  var data, out
15

    
16
  data = response.body
17
    .split('\n')
18
    .map(function (line) { return line.match(defreg) })
19
    .filter(function (match) { return match })
20
    .map(function (match) { return {
21
        errno: parseInt(match[1], 10)
22
      , code: match[2]
23
      , description: match[3]
24
    }})
25

    
26
  out = 'var all = module.exports.all = ' + JSON.stringify(data, 0, 1) + '\n\n'
27

    
28
  out += '\nmodule.exports.errno = {\n    '
29
    + data.map(function (e, i) {
30
        return '\'' + e.errno + '\': all[' + i + ']'
31
      }).join('\n  , ')
32
    + '\n}\n\n'
33

    
34
  out += '\nmodule.exports.code = {\n    '
35
    + data.map(function (e, i) {
36
        return '\'' + e.code + '\': all[' + i + ']'
37
      }).join('\n  , ')
38
    + '\n}\n\n'
39

    
40
  out += '\nmodule.exports.custom = require("./custom")(module.exports)\n'
41

    
42
  fs.writeFile('errno.js', out)
43
})
(4-4/9)