/* 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')); // Remove the general config and paste in the own one shell.rm(path.join(__appdir, 'ipxe', 'ipxe', 'src', 'config', 'general.h')); shell.cp(path.join(__appdir, 'ipxe', 'general.h'), path.join(__appdir, 'ipxe', 'ipxe', 'src', 'config')); shell.rm(path.join(__appdir, 'ipxe', 'ipxe', 'src', 'config', 'console.h')); shell.cp(path.join(__appdir, 'ipxe', 'console.h'), path.join(__appdir, 'ipxe', 'ipxe', 'src', 'config')); //var make = 'make EMBED=' + path.join(__appdir, 'ipxe', 'main.ipxe'); var make = 'make EMBED=' + path.join(__appdir, 'ipxe', 'main.ipxe') + " TRUST=" + path.join(__appdir, 'bin', 'fullchain.pem'); //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.rm(path.join(__appdir, 'tftp', 'ipxe.0')); shell.cp('bin/ipxe.pxe', path.join(__appdir, 'tftp')); shell.mv(path.join(__appdir, 'tftp', 'ipxe.pxe'), path.join(__appdir, 'tftp', 'ipxe.0')); // shell.rm('-rf', 'ipxe'); return res.status(200).send({ status: 'success' }); }); }); } }; // sudo apt-get install liblzma-dev // sudo apt-get install mkisofs