Get it working for some files
This commit is contained in:
parent
a57a42b092
commit
422cd3a254
|
@ -5,7 +5,7 @@ const isDirectory = require('./utils').isDirectory;
|
||||||
module.exports = {
|
module.exports = {
|
||||||
// Finds the electron asar file, if we can
|
// Finds the electron asar file, if we can
|
||||||
asar: function(entries) {
|
asar: function(entries) {
|
||||||
return Object.values(entries)
|
return entries
|
||||||
.filter((e) => {
|
.filter((e) => {
|
||||||
return (
|
return (
|
||||||
isDirectory(e.attributes) == false &&
|
isDirectory(e.attributes) == false &&
|
||||||
|
|
40
index.js
40
index.js
|
@ -1,36 +1,32 @@
|
||||||
const Seven = require("node-7z");
|
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const osguess = require("./os");
|
const osguess = require("./os");
|
||||||
const finder = require("./finder");
|
const finder = require("./finder");
|
||||||
|
const zip = require("./zip");
|
||||||
|
|
||||||
// Input file comes from process.argv[2]
|
// Input file comes from process.argv[2]
|
||||||
|
|
||||||
const FILENAME = process.argv[2];
|
const FILENAME = process.argv[2];
|
||||||
console.log(FILENAME)
|
|
||||||
const zip = Seven.list(FILENAME);
|
|
||||||
entries = [];
|
|
||||||
zip.on("data", (data) => {
|
|
||||||
entries.push(data);
|
|
||||||
});
|
|
||||||
|
|
||||||
zip.on("end", () => {
|
zip.listFileContents(FILENAME, (entries)=> {
|
||||||
let asar = finder.asar(entries);
|
let asar = finder.asar(entries);
|
||||||
let binary = finder.binary(entries);
|
let binary = finder.binary(entries);
|
||||||
let versionFiles = finder.version(entries);
|
let versionFiles = finder.version(entries);
|
||||||
let enm = finder.findElectronPackageInsideNodeModules(entries);
|
let enm = finder.findElectronPackageInsideNodeModules(entries);
|
||||||
if (asar.length > 0) {
|
// if (asar.length > 0) {
|
||||||
asar.forEach((a) => {
|
// asar.forEach((a) => {
|
||||||
console.log(`${process.argv[2]}:${a}`);
|
// console.log(`${process.argv[2]}:${a}`);
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
if (binary) {
|
// if (binary) {
|
||||||
console.log(`${process.argv[2]}:${binary}`);
|
// console.log(`${process.argv[2]}:${binary}`);
|
||||||
}
|
// }
|
||||||
if (versionFiles.length > 0) {
|
if (versionFiles.length > 0) {
|
||||||
versionFiles.forEach((a) => {
|
versionFiles.map((f) => {
|
||||||
console.log(`${process.argv[2]}:${a}`);
|
zip.readFileContents(FILENAME, f, (c)=>console.log(c))
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (enm) {
|
// if (enm) {
|
||||||
enm.forEach((a) => console.log(`${process.argv[2]}:${a}`));
|
// enm.forEach((a) => {
|
||||||
}
|
// zip.readFileContents(FILENAME, a, (c)=>console.log(c))
|
||||||
|
// });
|
||||||
|
// }
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,8 +10,9 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"asar": "^3.0.3",
|
"asar": "^3.0.3",
|
||||||
"elfinfo": "*",
|
"elfinfo": "*",
|
||||||
"node-7z": "^3.0.0",
|
"elfy": "^1.0.0",
|
||||||
"node-stream-zip": "^1.13.6"
|
"macho": "^1.4.0",
|
||||||
|
"node-7z": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/glob": {
|
"node_modules/@types/glob": {
|
||||||
|
@ -117,6 +118,24 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
|
||||||
"integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
|
"integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/elfy": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/elfy/-/elfy-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-4Kp3AA94jC085IJox+qnvrZ3PudqTi4gQNvIoTZfJJ9IqkRuCoqP60vCVYlIg00c5aYusi5Wjh2bf0cHYt+6gQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"endian-reader": "^0.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/elfy/node_modules/endian-reader": {
|
||||||
|
"version": "0.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/endian-reader/-/endian-reader-0.3.0.tgz",
|
||||||
|
"integrity": "sha1-hOykNrgK7Q0GOcRykTOLky7+UKA="
|
||||||
|
},
|
||||||
|
"node_modules/endian-reader": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/endian-reader/-/endian-reader-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-7tYexWSqX2KFJI82JF4siRVtlKw="
|
||||||
|
},
|
||||||
"node_modules/fs.realpath": {
|
"node_modules/fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
|
@ -180,6 +199,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/lodash.negate/-/lodash.negate-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.negate/-/lodash.negate-3.0.2.tgz",
|
||||||
"integrity": "sha1-nIl7C/YQAZ4LQ7j/Pwr+89e2bzQ="
|
"integrity": "sha1-nIl7C/YQAZ4LQ7j/Pwr+89e2bzQ="
|
||||||
},
|
},
|
||||||
|
"node_modules/macho": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/macho/-/macho-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-PT3YMEKYogCeVYEA2bCFRZASNyn/JaOhjq6eV8SzBQ3RFia7XU8ASQCgGx+f3RnJFHT+xavLP+Qds48jQb0J5Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"endian-reader": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/minimatch": {
|
"node_modules/minimatch": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
|
@ -213,18 +240,6 @@
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-stream-zip": {
|
|
||||||
"version": "1.13.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.13.6.tgz",
|
|
||||||
"integrity": "sha512-c7tRSVkLNOHvasWgmZ2d86cDgTWEygnkuuHNOY9c0mR3yLZtQTTrGvMaJ/fPs6+LOJn3240y30l5sjLaXFtcvw==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/antelle"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/normalize-path": {
|
"node_modules/normalize-path": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||||
|
@ -342,6 +357,26 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"elfy": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/elfy/-/elfy-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-4Kp3AA94jC085IJox+qnvrZ3PudqTi4gQNvIoTZfJJ9IqkRuCoqP60vCVYlIg00c5aYusi5Wjh2bf0cHYt+6gQ==",
|
||||||
|
"requires": {
|
||||||
|
"endian-reader": "^0.3.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"endian-reader": {
|
||||||
|
"version": "0.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/endian-reader/-/endian-reader-0.3.0.tgz",
|
||||||
|
"integrity": "sha1-hOykNrgK7Q0GOcRykTOLky7+UKA="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endian-reader": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/endian-reader/-/endian-reader-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-7tYexWSqX2KFJI82JF4siRVtlKw="
|
||||||
|
},
|
||||||
"fs.realpath": {
|
"fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
|
@ -399,6 +434,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/lodash.negate/-/lodash.negate-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.negate/-/lodash.negate-3.0.2.tgz",
|
||||||
"integrity": "sha1-nIl7C/YQAZ4LQ7j/Pwr+89e2bzQ="
|
"integrity": "sha1-nIl7C/YQAZ4LQ7j/Pwr+89e2bzQ="
|
||||||
},
|
},
|
||||||
|
"macho": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/macho/-/macho-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-PT3YMEKYogCeVYEA2bCFRZASNyn/JaOhjq6eV8SzBQ3RFia7XU8ASQCgGx+f3RnJFHT+xavLP+Qds48jQb0J5Q==",
|
||||||
|
"requires": {
|
||||||
|
"endian-reader": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
|
@ -426,11 +469,6 @@
|
||||||
"normalize-path": "^3.0.0"
|
"normalize-path": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-stream-zip": {
|
|
||||||
"version": "1.13.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.13.6.tgz",
|
|
||||||
"integrity": "sha512-c7tRSVkLNOHvasWgmZ2d86cDgTWEygnkuuHNOY9c0mR3yLZtQTTrGvMaJ/fPs6+LOJn3240y30l5sjLaXFtcvw=="
|
|
||||||
},
|
|
||||||
"normalize-path": {
|
"normalize-path": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Guess which electron version is bundled in an application",
|
"description": "Guess which electron version is bundled in an application",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
|
"bin": {
|
||||||
|
"which-electron": "index.js"
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
|
@ -26,7 +29,8 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"asar": "^3.0.3",
|
"asar": "^3.0.3",
|
||||||
"elfinfo": "*",
|
"elfinfo": "*",
|
||||||
"node-7z": "^3.0.0",
|
"elfy": "^1.0.0",
|
||||||
"node-stream-zip": "^1.13.6"
|
"macho": "^1.4.0",
|
||||||
|
"node-7z": "^3.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
const Seven = require("node-7z");
|
||||||
|
const path = require("path");
|
||||||
|
const fs = require("fs");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
readFileContents: function(archive, filepath, cb) {
|
||||||
|
// TODO: Create a new temp directory
|
||||||
|
let stream = Seven.extract(archive, "/tmp", {
|
||||||
|
recursive: true,
|
||||||
|
$cherryPick: filepath,
|
||||||
|
});
|
||||||
|
let fn = path.basename(filepath);
|
||||||
|
stream.on("end", ()=>{
|
||||||
|
cb(fs.readFileSync(`/tmp/${fn}`, {encoding: 'utf8'}))
|
||||||
|
});
|
||||||
|
},
|
||||||
|
listFileContents: function(archive, cb) {
|
||||||
|
let zip = Seven.list(archive);
|
||||||
|
let entries = [];
|
||||||
|
zip.on("data", (data) => {
|
||||||
|
entries.push(data);
|
||||||
|
});
|
||||||
|
zip.on("end", () => {
|
||||||
|
cb(entries);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
Loading…
Reference in New Issue