mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 15:37:46 +03:00
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
const crypto = require('crypto');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const CONFIG = require('../config');
|
|
const FINGERPRINT_PATH = path.join(
|
|
CONFIG.repositoryRootPath,
|
|
'node_modules',
|
|
'.dependencies-fingerprint'
|
|
);
|
|
|
|
module.exports = {
|
|
write: function() {
|
|
const fingerprint = this.compute();
|
|
fs.writeFileSync(FINGERPRINT_PATH, fingerprint);
|
|
console.log(
|
|
'Wrote Dependencies Fingerprint:',
|
|
FINGERPRINT_PATH,
|
|
fingerprint
|
|
);
|
|
},
|
|
read: function() {
|
|
return fs.existsSync(FINGERPRINT_PATH)
|
|
? fs.readFileSync(FINGERPRINT_PATH, 'utf8')
|
|
: null;
|
|
},
|
|
isOutdated: function() {
|
|
const fingerprint = this.read();
|
|
return fingerprint ? fingerprint !== this.compute() : false;
|
|
},
|
|
compute: function() {
|
|
// Include the electron minor version in the fingerprint since that changing requires a re-install
|
|
const electronVersion = CONFIG.appMetadata.electronVersion.replace(
|
|
/\.\d+$/,
|
|
''
|
|
);
|
|
const apmVersion = CONFIG.apmMetadata.dependencies['atom-package-manager'];
|
|
const body =
|
|
electronVersion +
|
|
apmVersion +
|
|
process.platform +
|
|
process.version +
|
|
process.arch;
|
|
return crypto
|
|
.createHash('sha1')
|
|
.update(body)
|
|
.digest('hex');
|
|
}
|
|
};
|