/* 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