feat: add very early mod.toml packwiz support

Also use it as a on-disk format for storing mod metadata. This will be
used later on to make better mod managment.
This commit is contained in:
flow 2022-04-13 19:16:36 -03:00 committed by flow
parent dca4ea5cea
commit b30b88716e
No known key found for this signature in database
GPG key ID: 8D0F221F0A59F469
8 changed files with 202 additions and 0 deletions

View file

@ -0,0 +1,32 @@
#include "LocalModUpdateTask.h"
#include <toml.h>
#include "FileSystem.h"
#include "modplatform/packwiz/Packwiz.h"
LocalModUpdateTask::LocalModUpdateTask(QDir mods_dir, ModPlatform::IndexedPack& mod, ModPlatform::IndexedVersion& mod_version)
: m_mod(mod), m_mod_version(mod_version)
{
// Ensure a '.index' folder exists in the mods folder, and create it if it does not
m_index_dir = { QString("%1/.index").arg(mods_dir.absolutePath()) };
if (!FS::ensureFolderPathExists(m_index_dir.path())) {
emitFailed(QString("Unable to create index for mod %1!").arg(m_mod.name));
}
}
void LocalModUpdateTask::executeTask()
{
setStatus(tr("Updating index for mod:\n%1").arg(m_mod.name));
auto pw_mod = Packwiz::createModFormat(m_index_dir, m_mod, m_mod_version);
Packwiz::updateModIndex(m_index_dir, pw_mod);
emitSucceeded();
}
bool LocalModUpdateTask::abort()
{
emitAborted();
return true;
}