Files
T

27 lines
751 B
JavaScript

const { spawn } = require('node:child_process');
exports.nsupdate = async(server, key, commands) => {
commands.unshift(`server ${server}`);
commands.push('send');
return(new Promise((resolve, reject) => {
const nsupdate = spawn('/usr/bin/nsupdate', ['-y', key]);
let errors = '';
nsupdate.stderr.on('data', data =>{errors += data.toString()});
nsupdate.on('error', error => {reject(error)});
nsupdate.on('exit', code =>{
if(code === 0){
if(errors.length > 0){
reject(errors);
}else{
resolve(true);
}
}else{
reject(errors);
}
});
for(const command of commands){
nsupdate.stdin.write(`${command}\n`);
}
nsupdate.stdin.end();
}));
}