From 7520d2b7ded18278736a999a9f5868b79f64ca0a Mon Sep 17 00:00:00 2001 From: salomonelli Date: Sat, 20 May 2017 13:38:05 +0200 Subject: [PATCH] REFACTOR to pdf --- node/ResumeToPdf.js | 29 ------------ node/Server.js | 15 ------- node/Util.js | 83 ----------------------------------- node/app.js | 78 +++++++++++++++++++++++++++++++- pdf/resume-material-dark.pdf | Bin 68066 -> 68066 bytes 5 files changed, 76 insertions(+), 129 deletions(-) delete mode 100644 node/ResumeToPdf.js delete mode 100644 node/Server.js delete mode 100644 node/Util.js diff --git a/node/ResumeToPdf.js b/node/ResumeToPdf.js deleted file mode 100644 index c94cbbb..0000000 --- a/node/ResumeToPdf.js +++ /dev/null @@ -1,29 +0,0 @@ -const path = require('path'); -const Util = require('./Util'); -const ResumeToPdf = { - /** - * generates electroshot command for screenshoting resume - * @param {string} resume resume name in URL - * @return {string} electroshot command - */ - electroshotScript: resume => { - const dir = path.join(__dirname, '../pdf'); - console.dir(dir); - return 'electroshot localhost:8080/#/' + resume + - ' 2481x3508 --pdf-margin none --format pdf --out ' + dir + - ' --filename "' + resume + '.pdf" --pdf-background; '; - }, - /** - * converts resumes to pdf - * @return {Promise} - */ - convert: async() => { - const directories = Util.getResumesFromDirectories(); - let script = ''; - directories.forEach(resume => (script += ResumeToPdf.electroshotScript(resume.path))); - script = script.substring(0, script.length - 2); - await Util.execBash(script); - } -}; - -module.exports = ResumeToPdf; diff --git a/node/Server.js b/node/Server.js deleted file mode 100644 index 387e88a..0000000 --- a/node/Server.js +++ /dev/null @@ -1,15 +0,0 @@ -const request = require('request-promise'); - -const PORT = 8080; -const Server = { - /** - * kills express app - */ - kill: () => { - request.get('http://localhost:' + PORT + '/kill') - .catch(error => { - if (error) return false; - }); - } -}; -module.exports = Server; diff --git a/node/Util.js b/node/Util.js deleted file mode 100644 index 87fe237..0000000 --- a/node/Util.js +++ /dev/null @@ -1,83 +0,0 @@ -const path = require('path'); -const writeFile = require('write'); -const fs = require('fs'); -const exec = require('child_process').exec; - -const Util = { - /** - * gets directories starting with 'resume-' - * @return {[]} - */ - getDirectories: () => { - const srcpath = path.join(__dirname, '../src/components'); - return fs.readdirSync(srcpath) - .filter(file => file.includes('resume-')); - }, - /** - * gets resumes names and paths from directories - * @return {Object[]} array with resumes object {path: '', name: ''} - */ - getResumesFromDirectories: () => { - const directories = Util.getDirectories(); - return directories - .filter(dir => dir.includes('resume-') && dir !== 'resume-XX') - .map(dir => { - let name = dir.replace('resume-', ''); - return { - path: dir.replace('.vue', ''), - name: name.replace('-', ' ') - }; - }); - }, - /** - * setTimeout as Promise - * @param {number} time time in ms - * @return {Promise} - */ - setTimeout: time => { - return new Promise(resolve => setTimeout(resolve, time)); - }, - /** - * reads file of content - * @param {string} dir directory - * @return {Promise} - */ - readFileContent: dir => { - return new Promise((resolve, reject) => { - fs.readFile(dir, 'utf8', (err, template) => { - if (err) reject(err); - else resolve(template); - }); - }); - }, - /** - * writes content to given file - * @param {string} dir directory - * @param {string} content content of file - * @return {Promise} - */ - writeFile: async (dir, content) => { - return new Promise((resolve, reject) => { - writeFile(dir, content, (err) => { - if (err) reject(err); - resolve(); - }); - }); - }, - /** - * executes command - * @param {string} script e.g. 'echo "Hello World"' - * @return {Promise} - */ - execBash: script => { - return new Promise((resolve, reject) => { - exec(script, - error => { - if (error) reject(error); - else resolve(); - }); - }); - } -}; - -module.exports = Util; diff --git a/node/app.js b/node/app.js index 36b0c59..8df9236 100644 --- a/node/app.js +++ b/node/app.js @@ -1,2 +1,76 @@ -const ResumeToPdf = require('./ResumeToPdf'); -ResumeToPdf.convert(); +const fs = require('fs'); +const path = require('path'); +const exec = require('child_process').exec; + +/** + * converts resumes to pdf + * @return {Promise} + */ +const convert = async() => { + try { + const directories = getResumesFromDirectories(); + let script = ''; + directories.forEach(resume => (script += electroshotScript(resume.path))); + script = script.substring(0, script.length - 2); + await execBash(script); + console.log('Successfully generated pdfs. Check in "/pdf".'); + } catch (err) { + throw new Error(err); + } +}; + +/** + * generates electroshot command for screenshoting resume + * @param {string} resume resume name in URL + * @return {string} electroshot command + */ +const electroshotScript = resume => { + const dir = path.join(__dirname, '../pdf'); + return 'electroshot localhost:8080/#/' + resume + + ' 2481x3508 --pdf-margin none --format pdf --out ' + dir + + ' --filename "' + resume + '.pdf" --pdf-background; '; +}; + +/** + * gets resumes names and paths from directories + * @return {Object[]} array with resumes object {path: '', name: ''} + */ +const getResumesFromDirectories = () => { + const directories = getDirectories(); + return directories + .filter(dir => dir.includes('resume-') && dir !== 'resume-XX') + .map(dir => { + let name = dir.replace('resume-', ''); + return { + path: dir.replace('.vue', ''), + name: name.replace('-', ' ') + }; + }); +}; + +/** + * gets directories starting with 'resume-' + * @return {[]} + */ +const getDirectories = () => { + const srcpath = path.join(__dirname, '../src/components'); + return fs.readdirSync(srcpath) + .filter(file => file.includes('resume-')); +}; + +/** + * executes command + * @param {string} script e.g. 'echo "Hello World"' + * @return {Promise} + */ +const execBash = script => { + return new Promise((resolve, reject) => { + exec(script, + error => { + if (error) reject(error); + else resolve(); + }); + }); +}; + +convert(); diff --git a/pdf/resume-material-dark.pdf b/pdf/resume-material-dark.pdf index 284f51da87898412d1c044ac17cdaf7f0117d1aa..8a3700a96c4170ccd695f4848859858c4df0a690 100644 GIT binary patch delta 26 fcmaDfndQ-BmI+DB=B8#7Qx!l|W5?DG#wbnzg>4A$ delta 26 fcmaDfndQ-BmI+DBMh1oxQx!l|W5?DG#wbnzgZ2o~