diff --git a/src/cli-util.js b/src/cli-util.js index 201d1617..3fd50001 100644 --- a/src/cli-util.js +++ b/src/cli-util.js @@ -292,7 +292,14 @@ function eachFilename(argv, patterns, callback) { } try { - const filePaths = globby.sync(patterns, { dot: true }); + const filePaths = globby + .sync(patterns, { dot: true }) + .map( + filePath => + path.isAbsolute(filePath) + ? path.relative(process.cwd(), filePath) + : filePath + ); if (filePaths.length === 0) { console.error(`No matching files. Patterns tried: ${patterns.join(" ")}`); process.exitCode = 2; diff --git a/tests_integration/__tests__/__snapshots__/ignore-absolute-path.js.snap b/tests_integration/__tests__/__snapshots__/ignore-absolute-path.js.snap new file mode 100644 index 00000000..a396d0f8 --- /dev/null +++ b/tests_integration/__tests__/__snapshots__/ignore-absolute-path.js.snap @@ -0,0 +1,6 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`support absolute filename 1`] = ` +"regular-module.js +" +`; diff --git a/tests_integration/__tests__/ignore-absolute-path.js b/tests_integration/__tests__/ignore-absolute-path.js new file mode 100644 index 00000000..8e46de3f --- /dev/null +++ b/tests_integration/__tests__/ignore-absolute-path.js @@ -0,0 +1,16 @@ +"use strict"; + +const path = require("path"); +const runPrettier = require("../runPrettier"); + +test("support absolute filename", () => { + const result = runPrettier("cli/ignore-absolute-path", [ + path.resolve(__dirname, "../cli/ignore-absolute-path/ignored/module.js"), + path.resolve(__dirname, "../cli/ignore-absolute-path/depth1/ignored/*.js"), + path.resolve(__dirname, "../cli/ignore-absolute-path/regular-module.js"), + "-l" + ]); + + expect(result.stdout).toMatchSnapshot(); + expect(result.status).toEqual(1); +}); diff --git a/tests_integration/cli/ignore-absolute-path/.prettierignore b/tests_integration/cli/ignore-absolute-path/.prettierignore new file mode 100644 index 00000000..c51aa823 --- /dev/null +++ b/tests_integration/cli/ignore-absolute-path/.prettierignore @@ -0,0 +1,2 @@ +/ignored/ +depth1/ignored/ diff --git a/tests_integration/cli/ignore-absolute-path/depth1/ignored/module.js b/tests_integration/cli/ignore-absolute-path/depth1/ignored/module.js new file mode 100644 index 00000000..ad9a93a7 --- /dev/null +++ b/tests_integration/cli/ignore-absolute-path/depth1/ignored/module.js @@ -0,0 +1 @@ +'use strict'; diff --git a/tests_integration/cli/ignore-absolute-path/ignored/module.js b/tests_integration/cli/ignore-absolute-path/ignored/module.js new file mode 100644 index 00000000..ad9a93a7 --- /dev/null +++ b/tests_integration/cli/ignore-absolute-path/ignored/module.js @@ -0,0 +1 @@ +'use strict'; diff --git a/tests_integration/cli/ignore-absolute-path/regular-module.js b/tests_integration/cli/ignore-absolute-path/regular-module.js new file mode 100644 index 00000000..ad9a93a7 --- /dev/null +++ b/tests_integration/cli/ignore-absolute-path/regular-module.js @@ -0,0 +1 @@ +'use strict';