From ffd86f2a5b7c2930d92fa8baf78df91cbb8c6449 Mon Sep 17 00:00:00 2001 From: Will Browne Date: Tue, 19 Jan 2021 15:26:50 +0100 Subject: [PATCH] Plugins: Force POSIX style path separators for manifest generation (#30287) * force POSIX style path separators * include posix style for symbolic links * include in error string --- packages/grafana-toolkit/src/plugins/manifest.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/grafana-toolkit/src/plugins/manifest.ts b/packages/grafana-toolkit/src/plugins/manifest.ts index dd4c455d27a..91c64bbf039 100644 --- a/packages/grafana-toolkit/src/plugins/manifest.ts +++ b/packages/grafana-toolkit/src/plugins/manifest.ts @@ -7,19 +7,22 @@ const MANIFEST_FILE = 'MANIFEST.txt'; async function* walk(dir: string, baseDir: string): AsyncGenerator { for await (const d of await (fs.promises as any).opendir(dir)) { - const entry = path.join(dir, d.name); + const entry = path.posix.join(dir, d.name); if (d.isDirectory()) { yield* await walk(entry, baseDir); } else if (d.isFile()) { - yield path.relative(baseDir, entry); + yield path.posix.relative(baseDir, entry); } else if (d.isSymbolicLink()) { const realPath = fs.realpathSync(entry); if (!realPath.startsWith(baseDir)) { throw new Error( - `symbolic link ${path.relative(baseDir, entry)} targets a file outside of the base directory: ${baseDir}` + `symbolic link ${path.posix.relative( + baseDir, + entry + )} targets a file outside of the base directory: ${baseDir}` ); } - yield path.relative(baseDir, entry); + yield path.posix.relative(baseDir, entry); } } }