/* global __appdir */ var path = require('path'); var shell = require('shelljs'); var ipxeGIT = 'git://git.ipxe.org/ipxe.git'; module.exports = { buildIPXE: function(req, res) { if (!shell.which('git')) { return res.status(500).send({ status: 'GIT_MISSING', error_message: 'Please install git on the server.' }); } var gitclone = 'git clone ' + ipxeGIT; shell.cd(path.join(__appdir, 'ipxe')); shell.exec(gitclone, function(code, stdout, stderr) { shell.cd(path.join(__appdir, 'ipxe', 'ipxe', 'src')); var make = 'make EMBED=' + path.join(__appdir, 'ipxe', 'main.ipxe'); //shell.env.PATH = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'; shell.env.DEBUG = ''; shell.exec(make, function(code, stdout, stderr) { shell.cp('-rf', 'bin/ipxe.pxe', path.join(__appdir, 'tftp')); shell.cp('-rf', 'bin/undionly.kpxe', path.join(__appdir, 'tftp')); //shell.rm('-rf', 'ipxe'); return res.status(200).send({ status: 'success' }); }); }); } }; // sudo apt-get install liblzma-dev // sudo apt-get install mkisofs