pyrou/node-teleinfo-server

View on GitHub
bin/teleinfo-server

Summary

Maintainability
Test Coverage
#!/usr/bin/env node

"use strict";
var path = require('path');
var fs = require('fs');
var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');

var doc = "\
Usage:                                                                     \n\
  teleinfo-server [--port=10000] [--host=0.0.0.0] [--wait=0]               \n\
  teleinfo-server -h | --help | --version                                \n\
                                                                        \n\
Options:                                                                 \n\
  -p, --port=PORT  Specify on which port the server is listening         \n\
  -H, --host=HOST  Specify on which host the server is listening         \n\
  -w, --wait=TIME  Time in seconds to wait between reading two datagrams\n\
                   During the wait time, datagrams received are dropped.\n\
                   The default value is 0                                 \n\
  -h, --help       display this help                                     \n\
  -v, --version    show version                                            \n\
";

var docopt = require('docopt').docopt;
var args = docopt(doc, {version: '0.1.1'});

var host = args['--host'] || "0.0.0.0";
var port = parseInt(args['--port']) || 10000;
var wait = parseInt(args['--wait']);

var UDPserver = require(lib+'/teleinfo-server.js');
var server = UDPserver(port, host, wait);

server.on('data', function(data) {
    console.log(data);
});
server.on('listening', function(server) {
    var address = server.address();
    console.info("Server listening " + address.address + ":" + address.port);
});