Initial commit 💥
This commit is contained in:
commit
67900d33a0
|
@ -0,0 +1,11 @@
|
|||
# HACKING
|
||||
|
||||
`fingerprint.php` does all the work. Just run it. versions.txt is generated from a list of all usable tags on the electron repo.
|
||||
|
||||
This includes all releases that were not:
|
||||
|
||||
1. nightly releases
|
||||
2. beta releases
|
||||
3. older than 0.24.0 (electron was called atom-shell before that)
|
||||
|
||||
All generated hashes are kept in `hashes/`.
|
|
@ -0,0 +1,13 @@
|
|||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2021 Abhay Rana <me@captnemo.in>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
@ -0,0 +1,21 @@
|
|||
# electron-fingerprints
|
||||
|
||||
Generates fingerprints for electron version detection by downloading electron releases and generating checksums of the files contained in each release.
|
||||
|
||||
## why
|
||||
|
||||
You can use this to guess which electron version is being used in a given application.
|
||||
A given electron version is (almost always) tightly bound to a node and chrome release as well, so
|
||||
you get a better sense of what the application is running.
|
||||
|
||||
Written as the backend for [`which-electon`][we].
|
||||
|
||||
## usage
|
||||
|
||||
This is just the raw data files, see [which-electron][we] for a usable package.
|
||||
|
||||
## LICENSE
|
||||
|
||||
Released under WTFPL.
|
||||
|
||||
[we]: https://github.com/captn3m0/which-electron
|
|
@ -0,0 +1,69 @@
|
|||
<?php
|
||||
// https://stackoverflow.com/a/54325258/368328
|
||||
function rsearch($dir) {
|
||||
$dir = new RecursiveDirectoryIterator($dir);
|
||||
$dir->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
|
||||
$ite = new RecursiveIteratorIterator($dir);
|
||||
|
||||
foreach($ite as $file) {
|
||||
yield $file->getPathName();
|
||||
}
|
||||
}
|
||||
|
||||
function generateFingerprint($version, $output, $hash_file) {
|
||||
$manifest = [];
|
||||
|
||||
$manifest['version'] = $version;
|
||||
foreach(rsearch($output) as $file) {
|
||||
$path = substr($file, strlen($output) + 1);
|
||||
$manifest[$path] = sha1_file($file);
|
||||
}
|
||||
$json = json_encode($manifest, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
|
||||
file_put_contents($hash_file, $json);
|
||||
}
|
||||
|
||||
function download_release($url, $output) {
|
||||
@unlink($output);
|
||||
system("wget --quiet --max-redirect=5 '$url' -O /dev/shm/test.zip", $ret);
|
||||
|
||||
return ($ret === 0);
|
||||
}
|
||||
|
||||
function extract_release($input, $output) {
|
||||
$zip = new ZipArchive();
|
||||
if (!$zip->open($input)) {
|
||||
die("Download failed?");
|
||||
}
|
||||
`rm -rf $output`;
|
||||
mkdir($output);
|
||||
|
||||
if(!$zip->extractTo($output)) {
|
||||
die("Failed extraction");
|
||||
}
|
||||
|
||||
$zip->close();
|
||||
}
|
||||
|
||||
$archs = ['x64'];
|
||||
$oses = ['linux', 'darwin', 'win32'];
|
||||
|
||||
foreach(file('versions.txt', FILE_IGNORE_NEW_LINES) as $version) {
|
||||
foreach($oses as $os) {
|
||||
foreach($archs as $arch) {
|
||||
$hash_file = "hashes/$os-$arch-$version.json";
|
||||
if (!file_exists($hash_file)) {
|
||||
$zipfile = '/dev/shm/test.zip';
|
||||
$output = '/dev/shm/electron';
|
||||
$url = "https://github.com/electron/electron/releases/download/$version/electron-$version-$os-$arch.zip";
|
||||
echo $url . PHP_EOL;
|
||||
|
||||
if (download_release($url, $zipfile)) {
|
||||
extract_release($zipfile, $output);
|
||||
generateFingerprint($version, $output, $hash_file);
|
||||
} else {
|
||||
echo "[DL:FAIL] $version\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,441 @@
|
|||
v0.24.0
|
||||
v0.25.0
|
||||
v0.25.1
|
||||
v0.25.2
|
||||
v0.25.3
|
||||
v0.26.0
|
||||
v0.26.1
|
||||
v0.27.0
|
||||
v0.27.1
|
||||
v0.27.2
|
||||
v0.27.3
|
||||
v0.28.0
|
||||
v0.28.1
|
||||
v0.28.2
|
||||
v0.28.3
|
||||
v0.29.0
|
||||
v0.29.1
|
||||
v0.29.2
|
||||
v0.30.0
|
||||
v0.30.1
|
||||
v0.30.2
|
||||
v0.30.3
|
||||
v0.30.4
|
||||
v0.30.5
|
||||
v0.30.6
|
||||
v0.30.7
|
||||
v0.30.8
|
||||
v0.31.0
|
||||
v0.31.1
|
||||
v0.31.2
|
||||
v0.32.0
|
||||
v0.32.1
|
||||
v0.32.2
|
||||
v0.32.3
|
||||
v0.33.0
|
||||
v0.33.1
|
||||
v0.33.2
|
||||
v0.33.3
|
||||
v0.33.4
|
||||
v0.33.5
|
||||
v0.33.6
|
||||
v0.33.7
|
||||
v0.33.8
|
||||
v0.33.9
|
||||
v0.34.0
|
||||
v0.34.1
|
||||
v0.34.2
|
||||
v0.34.3
|
||||
v0.34.4
|
||||
v0.34.5
|
||||
v0.35.0
|
||||
v0.35.1
|
||||
v0.35.2
|
||||
v0.35.3
|
||||
v0.35.4
|
||||
v0.35.5
|
||||
v0.35.6
|
||||
v0.36.0
|
||||
v0.36.1
|
||||
v0.36.10
|
||||
v0.36.11
|
||||
v0.36.12
|
||||
v0.36.2
|
||||
v0.36.3
|
||||
v0.36.4
|
||||
v0.36.5
|
||||
v0.36.6
|
||||
v0.36.7
|
||||
v0.36.8
|
||||
v0.36.9
|
||||
v0.37.0
|
||||
v0.37.1
|
||||
v0.37.2
|
||||
v0.37.3
|
||||
v0.37.4
|
||||
v0.37.5
|
||||
v0.37.6
|
||||
v0.37.7
|
||||
v0.37.8
|
||||
v1.0.0
|
||||
v1.0.1
|
||||
v1.0.2
|
||||
v1.1.0
|
||||
v1.1.1
|
||||
v1.1.2
|
||||
v1.1.3
|
||||
v1.2.0
|
||||
v1.2.1
|
||||
v1.2.2
|
||||
v1.2.3
|
||||
v1.2.4
|
||||
v1.2.5
|
||||
v1.2.6
|
||||
v1.2.7
|
||||
v1.2.8
|
||||
v1.3.0
|
||||
v1.3.1
|
||||
v1.3.10
|
||||
v1.3.11
|
||||
v1.3.12
|
||||
v1.3.13
|
||||
v1.3.14
|
||||
v1.3.15
|
||||
v1.3.2
|
||||
v1.3.3
|
||||
v1.3.4
|
||||
v1.3.5
|
||||
v1.3.6
|
||||
v1.3.7
|
||||
v1.3.8
|
||||
v1.3.9
|
||||
v1.4.0
|
||||
v1.4.1
|
||||
v1.4.10
|
||||
v1.4.11
|
||||
v1.4.12
|
||||
v1.4.13
|
||||
v1.4.14
|
||||
v1.4.15
|
||||
v1.4.16
|
||||
v1.4.2
|
||||
v1.4.3
|
||||
v1.4.4
|
||||
v1.4.5
|
||||
v1.4.6
|
||||
v1.4.7
|
||||
v1.4.8
|
||||
v1.4.9
|
||||
v1.5.0
|
||||
v1.5.1
|
||||
v1.6.0
|
||||
v1.6.1
|
||||
v1.6.10
|
||||
v1.6.11
|
||||
v1.6.12
|
||||
v1.6.13
|
||||
v1.6.14
|
||||
v1.6.15
|
||||
v1.6.16
|
||||
v1.6.17
|
||||
v1.6.18
|
||||
v1.6.2
|
||||
v1.6.3
|
||||
v1.6.4
|
||||
v1.6.5
|
||||
v1.6.6
|
||||
v1.6.7
|
||||
v1.6.8
|
||||
v1.6.9
|
||||
v1.7.0
|
||||
v1.7.1
|
||||
v1.7.10
|
||||
v1.7.11
|
||||
v1.7.12
|
||||
v1.7.13
|
||||
v1.7.14
|
||||
v1.7.15
|
||||
v1.7.16
|
||||
v1.7.2
|
||||
v1.7.3
|
||||
v1.7.4
|
||||
v1.7.5
|
||||
v1.7.6
|
||||
v1.7.7
|
||||
v1.7.8
|
||||
v1.7.9
|
||||
v1.8.0
|
||||
v1.8.1
|
||||
v1.8.2
|
||||
v1.8.3
|
||||
v1.8.4
|
||||
v1.8.5
|
||||
v1.8.6
|
||||
v1.8.7
|
||||
v1.8.8
|
||||
v10.0.0
|
||||
v10.0.1
|
||||
v10.1.0
|
||||
v10.1.1
|
||||
v10.1.2
|
||||
v10.1.3
|
||||
v10.1.4
|
||||
v10.1.5
|
||||
v10.1.6
|
||||
v10.1.7
|
||||
v10.2.0
|
||||
v10.3.0
|
||||
v10.3.1
|
||||
v10.3.2
|
||||
v10.4.0
|
||||
v10.4.1
|
||||
v10.4.2
|
||||
v10.4.3
|
||||
v10.4.4
|
||||
v10.4.5
|
||||
v10.4.6
|
||||
v10.4.7
|
||||
v11.0.0
|
||||
v11.0.1
|
||||
v11.0.2
|
||||
v11.0.3
|
||||
v11.0.4
|
||||
v11.0.5
|
||||
v11.1.0
|
||||
v11.1.1
|
||||
v11.2.0
|
||||
v11.2.1
|
||||
v11.2.2
|
||||
v11.2.3
|
||||
v11.3.0
|
||||
v11.4.0
|
||||
v11.4.1
|
||||
v11.4.10
|
||||
v11.4.2
|
||||
v11.4.3
|
||||
v11.4.4
|
||||
v11.4.5
|
||||
v11.4.6
|
||||
v11.4.7
|
||||
v11.4.8
|
||||
v11.4.9
|
||||
v12.0.0
|
||||
v12.0.1
|
||||
v12.0.10
|
||||
v12.0.11
|
||||
v12.0.12
|
||||
v12.0.13
|
||||
v12.0.14
|
||||
v12.0.15
|
||||
v12.0.2
|
||||
v12.0.3
|
||||
v12.0.4
|
||||
v12.0.5
|
||||
v12.0.6
|
||||
v12.0.7
|
||||
v12.0.8
|
||||
v12.0.9
|
||||
v13.0.0
|
||||
v13.0.1
|
||||
v13.1.0
|
||||
v13.1.1
|
||||
v13.1.2
|
||||
v13.1.3
|
||||
v13.1.4
|
||||
v13.1.5
|
||||
v13.1.6
|
||||
v13.1.7
|
||||
v2.0.0
|
||||
v2.0.1
|
||||
v2.0.10
|
||||
v2.0.11
|
||||
v2.0.12
|
||||
v2.0.13
|
||||
v2.0.14
|
||||
v2.0.15
|
||||
v2.0.16
|
||||
v2.0.17
|
||||
v2.0.18
|
||||
v2.0.2
|
||||
v2.0.3
|
||||
v2.0.4
|
||||
v2.0.5
|
||||
v2.0.6
|
||||
v2.0.7
|
||||
v2.0.8
|
||||
v2.0.9
|
||||
v2.1.0-unsupported-20180809
|
||||
v2.1.0-unsupported.20180809
|
||||
v3.0.0
|
||||
v3.0.1
|
||||
v3.0.10
|
||||
v3.0.11
|
||||
v3.0.12
|
||||
v3.0.13
|
||||
v3.0.14
|
||||
v3.0.15
|
||||
v3.0.16
|
||||
v3.0.2
|
||||
v3.0.3
|
||||
v3.0.4
|
||||
v3.0.5
|
||||
v3.0.6
|
||||
v3.0.7
|
||||
v3.0.8
|
||||
v3.0.9
|
||||
v3.1.0
|
||||
v3.1.1
|
||||
v3.1.10
|
||||
v3.1.11
|
||||
v3.1.12
|
||||
v3.1.13
|
||||
v3.1.2
|
||||
v3.1.3
|
||||
v3.1.4
|
||||
v3.1.5
|
||||
v3.1.6
|
||||
v3.1.7
|
||||
v3.1.8
|
||||
v3.1.9
|
||||
v4.0.0
|
||||
v4.0.1
|
||||
v4.0.2
|
||||
v4.0.3
|
||||
v4.0.4
|
||||
v4.0.5
|
||||
v4.0.6
|
||||
v4.0.7
|
||||
v4.0.8
|
||||
v4.1.0
|
||||
v4.1.1
|
||||
v4.1.2
|
||||
v4.1.3
|
||||
v4.1.4
|
||||
v4.1.5
|
||||
v4.2.0
|
||||
v4.2.1
|
||||
v4.2.10
|
||||
v4.2.11
|
||||
v4.2.12
|
||||
v4.2.2
|
||||
v4.2.3
|
||||
v4.2.4
|
||||
v4.2.5
|
||||
v4.2.6
|
||||
v4.2.7
|
||||
v4.2.8
|
||||
v4.2.9
|
||||
v5.0.0
|
||||
v5.0.1
|
||||
v5.0.10
|
||||
v5.0.11
|
||||
v5.0.12
|
||||
v5.0.13
|
||||
v5.0.2
|
||||
v5.0.3
|
||||
v5.0.4
|
||||
v5.0.5
|
||||
v5.0.6
|
||||
v5.0.7
|
||||
v5.0.8
|
||||
v5.0.9
|
||||
v6.0.0
|
||||
v6.0.1
|
||||
v6.0.10
|
||||
v6.0.11
|
||||
v6.0.12
|
||||
v6.0.2
|
||||
v6.0.3
|
||||
v6.0.4
|
||||
v6.0.5
|
||||
v6.0.6
|
||||
v6.0.7
|
||||
v6.0.8
|
||||
v6.0.9
|
||||
v6.1.0
|
||||
v6.1.1
|
||||
v6.1.10
|
||||
v6.1.11
|
||||
v6.1.12
|
||||
v6.1.2
|
||||
v6.1.3
|
||||
v6.1.4
|
||||
v6.1.5
|
||||
v6.1.6
|
||||
v6.1.7
|
||||
v6.1.8
|
||||
v6.1.9
|
||||
v7.0.0
|
||||
v7.0.1
|
||||
v7.1.0
|
||||
v7.1.1
|
||||
v7.1.10
|
||||
v7.1.11
|
||||
v7.1.12
|
||||
v7.1.13
|
||||
v7.1.14
|
||||
v7.1.2
|
||||
v7.1.3
|
||||
v7.1.4
|
||||
v7.1.5
|
||||
v7.1.6
|
||||
v7.1.7
|
||||
v7.1.8
|
||||
v7.1.9
|
||||
v7.2.0
|
||||
v7.2.1
|
||||
v7.2.2
|
||||
v7.2.3
|
||||
v7.2.4
|
||||
v7.3.0
|
||||
v7.3.1
|
||||
v7.3.2
|
||||
v7.3.3
|
||||
v8.0.0
|
||||
v8.0.1
|
||||
v8.0.2
|
||||
v8.0.3
|
||||
v8.1.0
|
||||
v8.1.1
|
||||
v8.2.0
|
||||
v8.2.1
|
||||
v8.2.2
|
||||
v8.2.3
|
||||
v8.2.4
|
||||
v8.2.5
|
||||
v8.3.0
|
||||
v8.3.1
|
||||
v8.3.2
|
||||
v8.3.3
|
||||
v8.3.4
|
||||
v8.4.0
|
||||
v8.4.1
|
||||
v8.5.0
|
||||
v8.5.1
|
||||
v8.5.2
|
||||
v8.5.3
|
||||
v8.5.4
|
||||
v8.5.5
|
||||
v9.0.0
|
||||
v9.0.1
|
||||
v9.0.2
|
||||
v9.0.3
|
||||
v9.0.4
|
||||
v9.0.5
|
||||
v9.0.6
|
||||
v9.1.0
|
||||
v9.1.1
|
||||
v9.1.2
|
||||
v9.2.0
|
||||
v9.2.1
|
||||
v9.3.0
|
||||
v9.3.1
|
||||
v9.3.2
|
||||
v9.3.3
|
||||
v9.3.4
|
||||
v9.3.5
|
||||
v9.4.0
|
||||
v9.4.1
|
||||
v9.4.2
|
||||
v9.4.3
|
||||
v9.4.4
|
Loading…
Reference in New Issue