Use lstat rather than stat to avoid error with symlinks in sync

Change-type: patch
Closes: #1301
Signed-off-by: Cameron Diver <cameron@balena.io>
This commit is contained in:
Cameron Diver 2020-05-06 09:35:13 +01:00
parent 313ee2048a
commit a7399fd78b

View File

@ -99,10 +99,6 @@ async function tarDirectory(
const entries = await fs.readdir(path);
for (const entry of entries) {
const newPath = Path.resolve(path, entry);
const stat = await fs.stat(newPath);
if (stat.isDirectory()) {
await add(newPath);
} else {
// Here we filter the things we don't want
if (
newPath.includes('node_modules/') ||
@ -112,7 +108,12 @@ async function tarDirectory(
) {
continue;
}
// We use lstat here, otherwise an error will be
// thrown on a symbolic link
const stat = await fs.lstat(newPath);
if (stat.isDirectory()) {
await add(newPath);
} else {
if (newPath.endsWith('Dockerfile')) {
pack.entry(
{ name: 'Dockerfile', mode: stat.mode, size: stat.size },