REFACTOR to pdf
This commit is contained in:
parent
deec9ec589
commit
7520d2b7de
@ -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;
|
||||
@ -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;
|
||||
83
node/Util.js
83
node/Util.js
@ -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;
|
||||
78
node/app.js
78
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();
|
||||
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user