fix update

This commit is contained in:
sorlinv
2026-03-05 16:10:02 +01:00
parent cbd2f676e2
commit 34306a3d05
3 changed files with 855 additions and 1182 deletions

1976
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -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,

View File

@@ -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)) {