From 43c611fcc03057aadb4590f71b0822a72c73dda3 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 7 Feb 2022 07:56:27 +0100 Subject: [PATCH] save --- .../desktop/com.github.rssguard.appdata.xml | 2 +- src/librssguard/miscellaneous/nodejs.cpp | 35 ++++++++++++++++--- src/librssguard/miscellaneous/nodejs.h | 7 ++-- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index 51ef5256f..7a9daa84f 100644 --- a/resources/desktop/com.github.rssguard.appdata.xml +++ b/resources/desktop/com.github.rssguard.appdata.xml @@ -26,7 +26,7 @@ https://github.com/sponsors/martinrotter - + none diff --git a/src/librssguard/miscellaneous/nodejs.cpp b/src/librssguard/miscellaneous/nodejs.cpp index 1627c1c15..4fcc8071c 100644 --- a/src/librssguard/miscellaneous/nodejs.cpp +++ b/src/librssguard/miscellaneous/nodejs.cpp @@ -8,6 +8,9 @@ #include "miscellaneous/settings.h" #include +#include +#include +#include NodeJs::NodeJs(Settings* settings, QObject* parent) : QObject(parent), m_settings(settings) {} @@ -64,14 +67,38 @@ QString NodeJs::npmVersion(const QString& npm_exe) const { } NodeJs::PackageStatus NodeJs::packageStatus(const PackageMetadata& pkg) const { - //npm ls --unicode --json --prefix "." - QString npm_ls = IOFactory::startProcessGetOutput(npmExecutable(), { QSL("ls"), QSL("--unicode"), QSL("--json"), QSL("--prefix"), processedPackageFolder() }); + QJsonDocument json = QJsonDocument::fromJson(npm_ls.toUtf8()); + QJsonObject deps = json.object()["dependencies"].toObject(); return {}; } -void NodeJs::installPackage(const PackageMetadata& pkg) -{} +void NodeJs::installUpdatePackage(const PackageMetadata& pkg) { + auto pkg_status = packageStatus(pkg); + + switch (pkg_status) { + case PackageStatus::NotInstalled: + break; + + case PackageStatus::OutOfDate: + break; + + case PackageStatus::UpToDate: + break; + } +} + +void NodeJs::installPackage(const PackageMetadata& pkg) { + // npm install --prefix "." @cliqz/adblocker@">=1.0.0 <2.0.0" --production --save-exact + //https://docs.npmjs.com/cli/v8/commands/npm-install + +} + +void NodeJs::updatePackage(const PackageMetadata& pkg) +{ + // npm update --prefix "." @cliqz/adblocker@">=1.0.0 <2.0.0" --production --save-exact + //https://docs.npmjs.com/cli/v8/commands/npm-update +} diff --git a/src/librssguard/miscellaneous/nodejs.h b/src/librssguard/miscellaneous/nodejs.h index 5144c63f3..4ab704703 100644 --- a/src/librssguard/miscellaneous/nodejs.h +++ b/src/librssguard/miscellaneous/nodejs.h @@ -55,13 +55,16 @@ class NodeJs : public QObject { // Installs package. // - // If package is NOT installed, then it is installed. + // If package is NOT installed, then it will be installed. // If package IS installed but out-of-date, it is updated to desired versions. // // NOTE: https://docs.npmjs.com/cli/v8/commands/npm-install - void installPackage(const PackageMetadata& pkg); + void installUpdatePackage(const PackageMetadata& pkg); private: + void installPackage(const PackageMetadata& pkg); + void updatePackage(const PackageMetadata& pkg); + Settings* m_settings; };