From 7ad1e20a48e9efc6bdc3ab51e697cfe24dc35fe3 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 30 May 2024 09:58:06 +0200 Subject: [PATCH] Lua: Add support for gzip files Change-Id: Id342364ffb71b8dd2e60a4332fd1d88a4951e08a Reviewed-by: David Schulz --- src/plugins/lua/bindings/install.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/lua/bindings/install.cpp b/src/plugins/lua/bindings/install.cpp index 6b35ace0b9d..a044ff2fb8d 100644 --- a/src/plugins/lua/bindings/install.cpp +++ b/src/plugins/lua/bindings/install.cpp @@ -161,6 +161,7 @@ static Group installRecipe( emitResult(sourceAndCommand.error()); return SetupResult::StopWithError; } + unarchiver.setGZipFileDestName(installOptionsIt->name); unarchiver.setSourceAndCommand(*sourceAndCommand); unarchiver.setDestDir(destination(appDataPath, *installOptionsIt)); return SetupResult::Continue; @@ -172,6 +173,12 @@ static Group installRecipe( if (result == DoneWith::Cancel) return DoneResult::Error; + const FilePath destDir = destination(appDataPath, *installOptionsIt); + const FilePath binary = destDir / installOptionsIt->name; + + if (binary.isFile()) + binary.setPermissions(QFile::ExeUser | QFile::ExeGroup | QFile::ExeOther); + expected_str doc = getOrCreatePackageInfo(appDataPath); if (!doc) return emitResult(doc.error()); @@ -180,7 +187,7 @@ static Group installRecipe( QJsonObject installedPackage; installedPackage["version"] = installOptionsIt->version; installedPackage["name"] = installOptionsIt->name; - installedPackage["path"] = destination(appDataPath, *installOptionsIt).toFSPathString(); + installedPackage["path"] = destDir.toFSPathString(); obj[installOptionsIt->name] = installedPackage; expected_str res = savePackageInfo(appDataPath, QJsonDocument(obj));