From aa4e552a03657a63922f5cd085431257c183f458 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Mon, 2 Jul 2018 19:52:25 +0000 Subject: [server] Initial commit to add the node server stuff. --- server/lib/shell.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 server/lib/shell.js (limited to 'server/lib/shell.js') diff --git a/server/lib/shell.js b/server/lib/shell.js new file mode 100644 index 0000000..ab07b81 --- /dev/null +++ b/server/lib/shell.js @@ -0,0 +1,31 @@ +/* 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 \ No newline at end of file -- cgit v1.2.3-55-g7522