add ddns-client
This commit is contained in:
		
							parent
							
								
									56b5337d8f
								
							
						
					
					
						commit
						fb0505881e
					
				
							
								
								
									
										59
									
								
								ddns-client.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										59
									
								
								ddns-client.js
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,59 @@
 | 
			
		||||
#!/usr/bin/env node
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
// dig -p 53 @redirect-www.org pi.nadal.daplie.com A
 | 
			
		||||
var updateIp = require('./holepunch/helpers/update-ip.js').update;
 | 
			
		||||
var cli = require('cli');
 | 
			
		||||
 | 
			
		||||
cli.parse({
 | 
			
		||||
  service: [ 's', 'The service to use for updates i.e. redirect-www.org', 'string', 'redirect-www.org' ]
 | 
			
		||||
, hostname: [ 'h', 'The hostname you wish to update i.e. example.com', 'string' ]
 | 
			
		||||
, type: [ 't', 'The record type i.e. A, MX, CNAME, etc', 'string', 'A' ]
 | 
			
		||||
, priority: [ 'p', 'The priority (for MX and other records)', 'string' ]
 | 
			
		||||
, port: [ false, 'The port (default https/443)', 'number', 443 ]
 | 
			
		||||
, insecure: [ false, '(deprecated) allow insecure non-https connections', 'boolean' ]
 | 
			
		||||
, cacert: [ false, '(not implemented) specify a CA for "self-signed" https certificates', 'string' ]
 | 
			
		||||
, answer: [ 'a', 'The answer', 'string' ]
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
cli.main(function (args, options) {
 | 
			
		||||
  //console.log(options);
 | 
			
		||||
  options.hostname = options.hostname || args[0]
 | 
			
		||||
  options.answer = options.answer || args[1]
 | 
			
		||||
 | 
			
		||||
  if (options.insecure) {
 | 
			
		||||
    console.error('--insecure is not supported. You must use secure connections.');
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!options.hostname) {
 | 
			
		||||
    console.error('Usage: ddns-client HOSTNAME ANSWER -t A -s updater.mydns.com');
 | 
			
		||||
    console.error('Example: ddns-client example.com');
 | 
			
		||||
    console.error('Note: if you omit ANSWER, it is assumed that the dyndns service will use the request ip');
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //console.log('args');
 | 
			
		||||
  //console.log(args);
 | 
			
		||||
  //console.log(options);
 | 
			
		||||
 | 
			
		||||
  return updateIp({
 | 
			
		||||
    updater: options.service
 | 
			
		||||
  , port: options.port
 | 
			
		||||
  , cacert: options.cacert
 | 
			
		||||
  , ddns: [
 | 
			
		||||
      { "name": options.hostname
 | 
			
		||||
      , "value": options.answer
 | 
			
		||||
      , "type": options.type
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  }).then(function (data) {
 | 
			
		||||
    if ('string') {
 | 
			
		||||
      data = JSON.parse(data);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    console.log(JSON.stringify(data, null, '  '));
 | 
			
		||||
    console.log('Test with');
 | 
			
		||||
    console.log('dig ' + options.hostname + ' ' + options.type);
 | 
			
		||||
  })
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										12
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								package.json
									
									
									
									
									
								
							@ -37,14 +37,14 @@
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://github.com/Daplie/walnut",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "bluebird": "^2.9.6",
 | 
			
		||||
    "connect": "^3.3.4",
 | 
			
		||||
    "foreachasync": "^5.0.5",
 | 
			
		||||
    "ssl-root-cas": "^1.1.7",
 | 
			
		||||
    "vhost": "^3.0.0",
 | 
			
		||||
    "bluebird": "^2.9.3",
 | 
			
		||||
    "check-ip-address": "^1.0.0",
 | 
			
		||||
    "cli": "^0.6.5",
 | 
			
		||||
    "connect": "^3.3.4",
 | 
			
		||||
    "express": "^4.11.2",
 | 
			
		||||
    "request": "^2.51.0"
 | 
			
		||||
    "foreachasync": "^5.0.5",
 | 
			
		||||
    "request": "^2.51.0",
 | 
			
		||||
    "ssl-root-cas": "^1.1.7",
 | 
			
		||||
    "vhost": "^3.0.0"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user