Check that dirs exist and handle errors
This commit is contained in:
parent
d5deb0f033
commit
2933451b18
35
index.js
35
index.js
@ -82,9 +82,8 @@ function cleanupFiles(dir) {
|
|||||||
try {
|
try {
|
||||||
const folder = path.join(dir, 'archive');
|
const folder = path.join(dir, 'archive');
|
||||||
fs.emptyDirSync(folder);
|
fs.emptyDirSync(folder);
|
||||||
console.log('Temp files removed.');
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
throw new Error(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,17 +96,32 @@ function cleanupFiles(dir) {
|
|||||||
* @param {string} outputDir Directory to save the image to
|
* @param {string} outputDir Directory to save the image to
|
||||||
*/
|
*/
|
||||||
function gerberToImage(gerber, imgConfig, tmpDir, outputDir) {
|
function gerberToImage(gerber, imgConfig, tmpDir, outputDir) {
|
||||||
|
// Create output dir if it doesn't exist
|
||||||
|
try {
|
||||||
|
fs.ensureDirSync(outputDir, 0o644);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check temp and output dirs exist
|
||||||
|
try {
|
||||||
|
if (!fs.existsSync(gerber)) {
|
||||||
|
throw Error('Archive does not exist.');
|
||||||
|
}
|
||||||
|
if (!fs.existsSync(tmpDir)) {
|
||||||
|
throw Error('Temporary folder does not exist.');
|
||||||
|
}
|
||||||
|
if (!fs.existsSync(outputDir)) {
|
||||||
|
throw Error('Output folder does not exist.');
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(e);
|
||||||
|
}
|
||||||
|
|
||||||
// Set filenames
|
// Set filenames
|
||||||
const imageName = path.basename(gerber, '.zip');
|
const imageName = path.basename(gerber, '.zip');
|
||||||
const destFile = `${path.join(outputDir, imageName)}.png`;
|
const destFile = `${path.join(outputDir, imageName)}.png`;
|
||||||
|
|
||||||
// Make sure output dir exists
|
|
||||||
try {
|
|
||||||
fs.ensureDirSync(outputDir);
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
extractArchive(gerber, tmpDir);
|
extractArchive(gerber, tmpDir);
|
||||||
getLayers(path.join(tmpDir, 'archive'))
|
getLayers(path.join(tmpDir, 'archive'))
|
||||||
@ -124,8 +138,7 @@ function gerberToImage(gerber, imgConfig, tmpDir, outputDir) {
|
|||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
cleanupFiles(tmpDir);
|
cleanupFiles(tmpDir);
|
||||||
handleError(e);
|
reject(new Error(e));
|
||||||
reject(e);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user