File: //var/packages/SynologyApplicationService/target/node_libs/GenVAPIDKey.js
'use strict';
const fs = require('fs');
const path = require('path');
const webpush = require('../node_modules/web-push/src/index');
const PUBLIC_KEY_FILE_PATH = '/usr/syno/etc/packages/SynologyApplicationService/vapid/public.key';
const PRIVATE_KEY_FILE_PATH = '/usr/syno/etc/packages/SynologyApplicationService/vapid/private.key';
const vapidKeys = webpush.generateVAPIDKeys();
function IsDirExists(dirpath) {
try {
return fs.statSync(dirpath).isDirectory();
}
catch (err) {
return false;
}
}
function CheckVapidDir(dirpath) {
if (!IsDirExists(dirpath)) {
fs.mkdirSync(dirpath);
}
}
CheckVapidDir(path.dirname(PUBLIC_KEY_FILE_PATH));
fs.writeFile(PUBLIC_KEY_FILE_PATH, vapidKeys.publicKey, function (err) {
if (err) {
return console.log(err);
}
});
fs.chmod(PUBLIC_KEY_FILE_PATH, 0o644, err => {
console.log(err);
});
fs.writeFile(PRIVATE_KEY_FILE_PATH, vapidKeys.privateKey, function (err) {
if (err) {
return console.log(err);
}
});
fs.chmod(PRIVATE_KEY_FILE_PATH, 0o600, err => {
console.log(err);
});
process.stdout.write(vapidKeys.publicKey);