Compare commits
	
		
			4 Commits
		
	
	
		
			49811bd321
			...
			be91254190
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					be91254190 | ||
| 
						 | 
					5839451f20 | ||
| 
						 | 
					f67788f9db | ||
| 
						 | 
					5cf3a3b20f | 
							
								
								
									
										73
									
								
								samples/parse-records.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								samples/parse-records.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,73 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * parses files in the format "type|domain|value|json\n"
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
var filename = process.argv[2];
 | 
			
		||||
var fs = require('fs');
 | 
			
		||||
 | 
			
		||||
var file = fs.readFileSync(filename, 'utf8');
 | 
			
		||||
var zone = 'daplie.com';
 | 
			
		||||
 | 
			
		||||
file.trim().split(/\n/).forEach(function (line) {
 | 
			
		||||
  var parts = line.split(/\|/);
 | 
			
		||||
  var type = parts[0];
 | 
			
		||||
  var name = parts[1] || zone;
 | 
			
		||||
  var domain = name.split('.');
 | 
			
		||||
  var thing = parts[2];
 | 
			
		||||
  var json = JSON.parse(parts[3]);
 | 
			
		||||
 | 
			
		||||
  var address;                // A, AAAA
 | 
			
		||||
  var flag, tag, value;       // CAA
 | 
			
		||||
  var data;                   // CNAME, NS, PTR, ... TXT (as array)
 | 
			
		||||
  var priority;               // MX, SRV
 | 
			
		||||
  var exchange;               // MX
 | 
			
		||||
  var weight, port, target;   // SRV
 | 
			
		||||
 | 
			
		||||
  if (/^(A|AAAA)$/.test(type)) {
 | 
			
		||||
    address = thing;
 | 
			
		||||
  }
 | 
			
		||||
  if (/^(CNAME|NS|PTR)$/.test(type)) {
 | 
			
		||||
    data = thing;
 | 
			
		||||
  }
 | 
			
		||||
  if (/^(TXT)$/.test(type)) {
 | 
			
		||||
    data = [ thing ];
 | 
			
		||||
  }
 | 
			
		||||
  if (/^(MX)$/.test(type)) {
 | 
			
		||||
    exchange = thing;
 | 
			
		||||
  }
 | 
			
		||||
  if (/^(MX|SRV)$/.test(type)) {
 | 
			
		||||
    priority = json.priority || 10;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var obj = {
 | 
			
		||||
    zone: zone
 | 
			
		||||
 | 
			
		||||
  , name: name
 | 
			
		||||
  , type: type
 | 
			
		||||
  , class: 'IN'
 | 
			
		||||
  , ttl: 5 // 12 hours 43200 // 3 days 259200
 | 
			
		||||
 | 
			
		||||
  , tld: domain.pop()
 | 
			
		||||
  , sld: domain.pop()
 | 
			
		||||
  , sub: domain.join('.') || undefined
 | 
			
		||||
 | 
			
		||||
  , address: address
 | 
			
		||||
  , aname: undefined
 | 
			
		||||
  , flag: flag
 | 
			
		||||
  , tag: tag
 | 
			
		||||
  , value: value
 | 
			
		||||
 | 
			
		||||
  , data: data
 | 
			
		||||
 | 
			
		||||
  , exchange: exchange
 | 
			
		||||
 | 
			
		||||
  , priority: priority
 | 
			
		||||
  , weight: weight
 | 
			
		||||
  , port: port
 | 
			
		||||
  , target: target
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  console.log(",", JSON.stringify(obj));
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user