fix update
This commit is contained in:
@@ -1,4 +1,16 @@
|
||||
const nodemailer = require("nodemailer");
|
||||
let _nodemailer = null;
|
||||
|
||||
const _get_nodemailer = () => {
|
||||
if (!_nodemailer) {
|
||||
try {
|
||||
_nodemailer = require("nodemailer");
|
||||
} catch (_err) {
|
||||
console.error("[EmailNotifier] nodemailer non disponible :", _err.message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return _nodemailer;
|
||||
};
|
||||
|
||||
const _SMTP = {
|
||||
str_host: "ssl0.ovh.net",
|
||||
@@ -28,7 +40,12 @@ const EmailNotifier = {
|
||||
return;
|
||||
}
|
||||
|
||||
EmailNotifier._obj_transporter = nodemailer.createTransport({
|
||||
let obj_nm = _get_nodemailer();
|
||||
if (!obj_nm) {
|
||||
return;
|
||||
}
|
||||
|
||||
EmailNotifier._obj_transporter = obj_nm.createTransport({
|
||||
host: _SMTP.str_host,
|
||||
port: _SMTP.nb_port,
|
||||
secure: true,
|
||||
@@ -66,7 +83,12 @@ const EmailNotifier = {
|
||||
},
|
||||
|
||||
test: (obj_config) => {
|
||||
let obj_transporter = nodemailer.createTransport({
|
||||
let obj_nm = _get_nodemailer();
|
||||
if (!obj_nm) {
|
||||
return Promise.resolve({ is_success: false, str_error: "nodemailer non disponible" });
|
||||
}
|
||||
|
||||
let obj_transporter = obj_nm.createTransport({
|
||||
host: _SMTP.str_host,
|
||||
port: _SMTP.nb_port,
|
||||
secure: true,
|
||||
|
||||
@@ -106,6 +106,9 @@ const UpdateManager = {
|
||||
.then((str_extracted_root) => {
|
||||
return UpdateManager._replace_app_files(str_extracted_root);
|
||||
})
|
||||
.then(() => {
|
||||
return UpdateManager._install_dependencies();
|
||||
})
|
||||
.then(() => {
|
||||
UpdateManager._send_event("update-progress", {
|
||||
str_step: "restarting",
|
||||
@@ -428,6 +431,36 @@ const UpdateManager = {
|
||||
});
|
||||
},
|
||||
|
||||
_install_dependencies: () => {
|
||||
let str_app_dir = path.join(__dirname, "..", "..");
|
||||
let str_pkg = path.join(str_app_dir, "package.json");
|
||||
|
||||
if (!fs.existsSync(str_pkg)) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
try {
|
||||
let obj_pkg = JSON.parse(fs.readFileSync(str_pkg, "utf8"));
|
||||
if (!obj_pkg.dependencies || Object.keys(obj_pkg.dependencies).length === 0) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
} catch (_err) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
let str_npm = process.platform === "win32" ? "npm.cmd" : "npm";
|
||||
execFile(str_npm, ["install", "--production", "--no-audit", "--no-fund"], { cwd: str_app_dir, timeout: 60000 }, (obj_err) => {
|
||||
if (obj_err) {
|
||||
console.error("UpdateManager: npm install echoue :", obj_err.message);
|
||||
reject(new Error("Installation des dependances echouee : " + obj_err.message));
|
||||
return;
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
_cleanup: (str_dir) => {
|
||||
try {
|
||||
if (fs.existsSync(str_dir)) {
|
||||
|
||||
Reference in New Issue
Block a user