| 208 | } |
| 209 | |
| 210 | auto 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 | |
| 242 | QString FlatpakRuntime::name() const |
| 243 | { |
no test coverage detected