You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					43 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					43 lines
				
				1.1 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								#!/usr/bin/env node
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var request   = require('request')
							 | 
						||
| 
								 | 
							
								  , fs        = require('fs')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  , uvheadloc = 'https://raw.github.com/joyent/libuv/master/include/uv.h'
							 | 
						||
| 
								 | 
							
								  , defreg    = /^\s*XX\(\s*([\-\d]+),\s*([A-Z]+),\s*"([^"]*)"\s*\)\s*\\?$/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								request(uvheadloc, function (err, response) {
							 | 
						||
| 
								 | 
							
								  if (err)
							 | 
						||
| 
								 | 
							
								    throw err
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var data, out
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  data = response.body
							 | 
						||
| 
								 | 
							
								    .split('\n')
							 | 
						||
| 
								 | 
							
								    .map(function (line) { return line.match(defreg) })
							 | 
						||
| 
								 | 
							
								    .filter(function (match) { return match })
							 | 
						||
| 
								 | 
							
								    .map(function (match) { return {
							 | 
						||
| 
								 | 
							
								        errno: parseInt(match[1], 10)
							 | 
						||
| 
								 | 
							
								      , code: match[2]
							 | 
						||
| 
								 | 
							
								      , description: match[3]
							 | 
						||
| 
								 | 
							
								    }})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  out = 'var all = module.exports.all = ' + JSON.stringify(data, 0, 1) + '\n\n'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  out += '\nmodule.exports.errno = {\n    '
							 | 
						||
| 
								 | 
							
								    + data.map(function (e, i) {
							 | 
						||
| 
								 | 
							
								        return '\'' + e.errno + '\': all[' + i + ']'
							 | 
						||
| 
								 | 
							
								      }).join('\n  , ')
							 | 
						||
| 
								 | 
							
								    + '\n}\n\n'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  out += '\nmodule.exports.code = {\n    '
							 | 
						||
| 
								 | 
							
								    + data.map(function (e, i) {
							 | 
						||
| 
								 | 
							
								        return '\'' + e.code + '\': all[' + i + ']'
							 | 
						||
| 
								 | 
							
								      }).join('\n  , ')
							 | 
						||
| 
								 | 
							
								    + '\n}\n\n'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  out += '\nmodule.exports.custom = require("./custom")(module.exports)\n'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  fs.writeFile('errno.js', out)
							 | 
						||
| 
								 | 
							
								})
							 |