Update gitignore (sorry)
This commit is contained in:
parent
a8f8c4d7ad
commit
cca8b02fea
6604 changed files with 1219661 additions and 4 deletions
41
electron/node_modules/asar/lib/crawlfs.js
generated
vendored
Normal file
41
electron/node_modules/asar/lib/crawlfs.js
generated
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
'use strict'
|
||||
|
||||
const { promisify } = require('util')
|
||||
|
||||
const fs = require('./wrapped-fs')
|
||||
const glob = promisify(require('glob'))
|
||||
|
||||
async function determineFileType (filename) {
|
||||
const stat = await fs.lstat(filename)
|
||||
if (stat.isFile()) {
|
||||
return { type: 'file', stat }
|
||||
} else if (stat.isDirectory()) {
|
||||
return { type: 'directory', stat }
|
||||
} else if (stat.isSymbolicLink()) {
|
||||
return { type: 'link', stat }
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = async function (dir, options) {
|
||||
const metadata = {}
|
||||
const crawled = await glob(dir, options)
|
||||
const results = await Promise.all(crawled.map(async filename => [filename, await determineFileType(filename)]))
|
||||
const links = []
|
||||
const filenames = results.map(([filename, type]) => {
|
||||
if (type) {
|
||||
metadata[filename] = type
|
||||
if (type.type === 'link') links.push(filename)
|
||||
}
|
||||
return filename
|
||||
}).filter((filename) => {
|
||||
// Newer glob can return files inside symlinked directories, to avoid
|
||||
// those appearing in archives we need to manually exclude theme here
|
||||
const exactLinkIndex = links.findIndex(link => filename === link)
|
||||
return links.every((link, index) => {
|
||||
if (index === exactLinkIndex) return true
|
||||
return !filename.startsWith(link)
|
||||
})
|
||||
})
|
||||
return [filenames, metadata]
|
||||
}
|
||||
module.exports.determineFileType = determineFileType
|
||||
Loading…
Add table
Add a link
Reference in a new issue