This commit is contained in:
Martin Rotter 2022-02-07 07:56:27 +01:00
parent f3fe65a4bb
commit 43c611fcc0
3 changed files with 37 additions and 7 deletions

View File

@ -26,7 +26,7 @@
<url type="donation">https://github.com/sponsors/martinrotter</url> <url type="donation">https://github.com/sponsors/martinrotter</url>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release version="4.1.2" date="2022-02-03"/> <release version="4.1.2" date="2022-02-07"/>
</releases> </releases>
<content_rating type="oars-1.0"> <content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute> <content_attribute id="violence-cartoon">none</content_attribute>

View File

@ -8,6 +8,9 @@
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include <QDir> #include <QDir>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
NodeJs::NodeJs(Settings* settings, QObject* parent) : QObject(parent), m_settings(settings) {} 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 { NodeJs::PackageStatus NodeJs::packageStatus(const PackageMetadata& pkg) const {
//npm ls --unicode --json --prefix "."
QString npm_ls = IOFactory::startProcessGetOutput(npmExecutable(), QString npm_ls = IOFactory::startProcessGetOutput(npmExecutable(),
{ QSL("ls"), QSL("--unicode"), QSL("--json"), QSL("--prefix"), { QSL("ls"), QSL("--unicode"), QSL("--json"), QSL("--prefix"),
processedPackageFolder() }); processedPackageFolder() });
QJsonDocument json = QJsonDocument::fromJson(npm_ls.toUtf8());
QJsonObject deps = json.object()["dependencies"].toObject();
return {}; 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
}

View File

@ -55,13 +55,16 @@ class NodeJs : public QObject {
// Installs package. // 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. // If package IS installed but out-of-date, it is updated to desired versions.
// //
// NOTE: https://docs.npmjs.com/cli/v8/commands/npm-install // NOTE: https://docs.npmjs.com/cli/v8/commands/npm-install
void installPackage(const PackageMetadata& pkg); void installUpdatePackage(const PackageMetadata& pkg);
private: private:
void installPackage(const PackageMetadata& pkg);
void updatePackage(const PackageMetadata& pkg);
Settings* m_settings; Settings* m_settings;
}; };