summaryrefslogblamecommitdiffstats
path: root/server/lib/shell.js
blob: ab07b814aa1a08d42af6262626e5f5964695ac1b (plain) (tree)






























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