Skip to content

Commit

Permalink
Correctly check symlinks (#103)
Browse files Browse the repository at this point in the history
  • Loading branch information
konradpabjan committed Jul 27, 2020
1 parent 589ca5f commit 5f948bc
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
6 changes: 5 additions & 1 deletion dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6225,6 +6225,8 @@ const path = __importStar(__webpack_require__(622));
const core_1 = __webpack_require__(470);
const fs_1 = __webpack_require__(747);
const path_1 = __webpack_require__(622);
const util_1 = __webpack_require__(669);
const stats = util_1.promisify(fs_1.stat);
function getDefaultGlobOptions() {
return {
followSymbolicLinks: true,
Expand Down Expand Up @@ -6293,7 +6295,9 @@ function findFilesToUpload(searchPath, globOptions) {
directories so filter any directories out from the raw search results
*/
for (const searchResult of rawSearchResults) {
if (!fs_1.lstatSync(searchResult).isDirectory()) {
const fileStats = yield stats(searchResult);
// isDirectory() returns false for symlinks if using fs.lstat(), make sure to use fs.stat() instead
if (!fileStats.isDirectory()) {
core_1.debug(`File:${searchResult} was found using the provided searchPath`);
searchResults.push(searchResult);
}
Expand Down
8 changes: 6 additions & 2 deletions src/search.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import * as glob from '@actions/glob'
import * as path from 'path'
import {debug, info} from '@actions/core'
import {lstatSync} from 'fs'
import {stat} from 'fs'
import {dirname} from 'path'
import {promisify} from 'util'
const stats = promisify(stat)

export interface SearchResult {
filesToUpload: string[]
Expand Down Expand Up @@ -92,7 +94,9 @@ export async function findFilesToUpload(
directories so filter any directories out from the raw search results
*/
for (const searchResult of rawSearchResults) {
if (!lstatSync(searchResult).isDirectory()) {
const fileStats = await stats(searchResult)
// isDirectory() returns false for symlinks if using fs.lstat(), make sure to use fs.stat() instead
if (!fileStats.isDirectory()) {
debug(`File:${searchResult} was found using the provided searchPath`)
searchResults.push(searchResult)
} else {
Expand Down

0 comments on commit 5f948bc

Please sign in to comment.