MCPcopy Create free account
hub / github.com/KDE/kdevelop / exportBundle

Method exportBundle

plugins/flatpak/flatpakruntime.cpp:210–240  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

208}
209
210auto FlatpakRuntime::exportBundle(const QString& path) const -> ExportBundle
211{
212 const auto doc = config();
213
214 auto* dir = new QTemporaryDir(QDir::tempPath()+QLatin1String("/flatpak-tmp-repo"));
215 if (!dir->isValid() || doc.isEmpty()) {
216 qCWarning(FLATPAK) << "Couldn't export:" << path << dir->isValid() << dir->path() << doc.isEmpty();
217 return {};
218 }
219
220 auto name = doc[QLatin1String("id")].toString();
221 QStringList args = m_finishArgs;
222 if (doc.contains(QLatin1String("command")))
223 args << QLatin1String("--command=")+doc[QLatin1String("command")].toString();
224
225 auto* const buildFinishJob = createExecuteJob(
226 QStringList{QStringLiteral("flatpak"), QStringLiteral("build-finish"), m_buildDirectory.toLocalFile()} << args,
227 i18nc("%1 - application ID", "Flatpak Finalize %1", name));
228 buildFinishJob->setCheckExitCode(false);
229
230 QList<KJob*> jobs{buildFinishJob,
231 createExecuteJob({QStringLiteral("flatpak"), QStringLiteral("build-export"),
232 QLatin1String("--arch=") + m_arch, dir->path(), m_buildDirectory.toLocalFile()},
233 i18nc("%1 - application ID", "Flatpak Export %1", name)),
234 createExecuteJob({QStringLiteral("flatpak"), QStringLiteral("build-bundle"),
235 QLatin1String("--arch=") + m_arch, dir->path(), path, name},
236 i18nc("%1 - application ID", "Flatpak Bundle %1", name))};
237 connect(jobs.last(), &QObject::destroyed, jobs.last(), [dir]() { delete dir; });
238
239 return {std::move(jobs), std::move(name)};
240}
241
242QString FlatpakRuntime::name() const
243{

Callers 1

exportCurrentMethod · 0.80

Calls 9

createExecuteJobFunction · 0.85
toLocalFileMethod · 0.80
setCheckExitCodeMethod · 0.80
isValidMethod · 0.45
isEmptyMethod · 0.45
pathMethod · 0.45
toStringMethod · 0.45
containsMethod · 0.45
lastMethod · 0.45

Tested by

no test coverage detected