summaryrefslogtreecommitdiffstats
path: root/server/api/ipxe.js
diff options
context:
space:
mode:
authorJannik Schönartz2019-01-15 04:39:31 +0100
committerJannik Schönartz2019-01-15 04:39:31 +0100
commitffc5050fcdd0efed4f01d7f1f20465cadd9c9f5b (patch)
tree52fa04038927c99b737a5afbcecddd0ae65070f8 /server/api/ipxe.js
parent[webapp/datatable] Add search clear + show all selected button (diff)
downloadbas-ffc5050fcdd0efed4f01d7f1f20465cadd9c9f5b.tar.gz
bas-ffc5050fcdd0efed4f01d7f1f20465cadd9c9f5b.tar.xz
bas-ffc5050fcdd0efed4f01d7f1f20465cadd9c9f5b.zip
[ipxe builder] Add ipxe builder module
EFI and BIOS version can be build and configured Fancy log to see the stdout and stderr
Diffstat (limited to 'server/api/ipxe.js')
-rw-r--r--server/api/ipxe.js63
1 files changed, 61 insertions, 2 deletions
diff --git a/server/api/ipxe.js b/server/api/ipxe.js
index f50d9d3..549eb6f 100644
--- a/server/api/ipxe.js
+++ b/server/api/ipxe.js
@@ -7,12 +7,71 @@ var router = express.Router()
var noAuthRouter = express.Router()
// GET requests.
+router.get('/build', (req, res) => {
+ shell.buildIpxe(req, res)
+})
+
+router.get('/:version/script', (req, res) => {
+ res.setHeader('content-type', 'text/plain')
+ res.sendFile(path.join(__appdir, 'ipxe', 'embedded_' + req.params.version + '.ipxe'))
+})
+
+router.get('/:version/certificate', (req, res) => {
+ res.setHeader('content-type', 'text/plain')
+ res.sendFile(path.join(__appdir, 'bin', 'fullchain.pem'))
+})
+
+router.get('/:version/general', (req, res) => {
+ res.setHeader('content-type', 'text/plain')
+ res.sendFile(path.join(__appdir, 'ipxe', 'general_' + req.params.version + '.h'))
+})
+
+router.get('/:version/console', (req, res) => {
+ res.setHeader('content-type', 'text/plain')
+ res.sendFile(path.join(__appdir, 'ipxe', 'console_' + req.params.version + '.h'))
+})
+
+router.get('/:version/log', async (req, res) => {
+ res.setHeader('content-type', 'text/plain')
+ const filepath = path.join(__appdir, 'ipxe', 'log_' + req.params.version + '.txt')
+ res.sendFile(filepath, err => {
+ if (err) console.log('Could not send file ' + filepath)
+ })
+})
+
+router.put('/:version/:filename', (req, res) => {
+ var filepath = null
+ // Set the file path
+ if (req.params.filename === 'script') {
+ filepath = path.join(__appdir, 'ipxe', 'embedded_' + req.params.version + '.ipxe')
+ } else if (req.params.filename === 'console' || req.params.filename === 'general') {
+ filepath = path.join(__appdir, 'ipxe', req.params.filename + '_' + req.params.version + '.h')
+ } else if (req.params.filename === 'certificate') {
+ filepath = path.join(__appdir, 'bin', 'fullchain.pem')
+ } else {
+ res.status(500).send({ status: 'UNKNOWN_FILENAME', error: 'The provided filename is unknown' })
+ return
+ }
+
+ // Write File
+ fs.writeFile(filepath, req.body.data, err => {
+ if (err) res.status(500).send({ status: 'WRITE_FILE_ERROR', error: err })
+ else res.status(200).send({ status: 'SUCCESS' })
+ })
+})
/*
* @return: Rebuild the ipxe.
*/
-router.get('/build', (req, res) => {
- shell.buildIpxe(req, res)
+router.get('/:version/build', async (req, res) => {
+ if (req.params.version === 'efi' || req.params.version === 'bios') await shell.buildIpxe(req, res)
+ res.status(200).send({ status: 'success' })
+})
+
+router.get('/:version/clean', (req, res) => {
+ if (req.params.version === 'efi') shell.clean('efi')
+ else if (req.params.version === 'bios') shell.clean('bios')
+ res.send()
})
module.exports.router = router