summaryrefslogtreecommitdiffstats
path: root/logic/minecraft/OneSixLibrary.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-07-26 23:00:35 +0200
committerPetr Mrázek <peterix@gmail.com>2014-07-26 23:00:35 +0200
commit03b13b0b3f43e830ca924338b38e1947cd0cc739 (patch)
tree08941e693ab365f934beba04d69aacf481be40d1 /logic/minecraft/OneSixLibrary.cpp
parent9b82c87c92761515a11f00540a6bf74df6c76298 (diff)
downloadMultiMC-03b13b0b3f43e830ca924338b38e1947cd0cc739.tar
MultiMC-03b13b0b3f43e830ca924338b38e1947cd0cc739.tar.gz
MultiMC-03b13b0b3f43e830ca924338b38e1947cd0cc739.tar.lz
MultiMC-03b13b0b3f43e830ca924338b38e1947cd0cc739.tar.xz
MultiMC-03b13b0b3f43e830ca924338b38e1947cd0cc739.zip
Rearrange RawLibrary and OneSixLibrary heavily.
Fix #396
Diffstat (limited to 'logic/minecraft/OneSixLibrary.cpp')
-rw-r--r--logic/minecraft/OneSixLibrary.cpp195
1 files changed, 6 insertions, 189 deletions
diff --git a/logic/minecraft/OneSixLibrary.cpp b/logic/minecraft/OneSixLibrary.cpp
index c562f353..9b3f3b3e 100644
--- a/logic/minecraft/OneSixLibrary.cpp
+++ b/logic/minecraft/OneSixLibrary.cpp
@@ -32,198 +32,15 @@ OneSixLibrary::OneSixLibrary(RawLibraryPtr base)
extract_excludes = base->extract_excludes;
m_native_classifiers = base->m_native_classifiers;
m_rules = base->m_rules;
- finalize();
+ dependType = base->dependType;
+ // these only make sense for raw libraries. OneSix
+ /*
+ insertType = base->insertType;
+ insertData = base->insertData;
+ */
}
OneSixLibraryPtr OneSixLibrary::fromRawLibrary(RawLibraryPtr lib)
{
return OneSixLibraryPtr(new OneSixLibrary(lib));
}
-
-void OneSixLibrary::finalize()
-{
- QString relative;
-
- if (m_rules.empty())
- {
- m_is_active = true;
- }
- else
- {
- RuleAction result = Disallow;
- for (auto rule : m_rules)
- {
- RuleAction temp = rule->apply(this);
- if (temp != Defer)
- result = temp;
- }
- m_is_active = (result == Allow);
- }
- if (isNative())
- {
- GradleSpecifier nativeSpec = m_name;
- m_is_active = m_is_active && m_native_classifiers.contains(currentSystem);
- m_decenttype = "Native";
- if(m_native_classifiers.contains(currentSystem))
- {
- nativeSpec.setClassifier(m_native_classifiers[currentSystem]);
- }
- else
- {
- nativeSpec.setClassifier("INVALID");
- }
- relative = nativeSpec.toPath();
- }
- else
- {
- relative = m_name.toPath();
- m_decenttype = "Java";
- }
-
- m_decentname = m_name.artifactId();
- m_decentversion = minVersion = m_name.version();
- m_storage_path = relative;
- if(m_base_url.isEmpty())
- m_download_url = QString("https://" + URLConstants::LIBRARY_BASE) + relative;
- else
- m_download_url = m_base_url + relative;
-}
-
-void OneSixLibrary::setName(const QString &name)
-{
- m_name = name;
-}
-void OneSixLibrary::setBaseUrl(const QString &base_url)
-{
- m_base_url = base_url;
-}
-void OneSixLibrary::addNative(OpSys os, const QString &suffix)
-{
- m_native_classifiers[os] = suffix;
-}
-void OneSixLibrary::clearSuffixes()
-{
- m_native_classifiers.clear();
-}
-void OneSixLibrary::setRules(QList<std::shared_ptr<Rule>> rules)
-{
- m_rules = rules;
-}
-bool OneSixLibrary::isActive() const
-{
- return m_is_active;
-}
-QString OneSixLibrary::downloadUrl() const
-{
- if (m_absolute_url.size())
- return m_absolute_url;
- return m_download_url;
-}
-QString OneSixLibrary::storagePath() const
-{
- return m_storage_path;
-}
-
-void OneSixLibrary::setAbsoluteUrl(const QString &absolute_url)
-{
- m_absolute_url = absolute_url;
-}
-
-QString OneSixLibrary::absoluteUrl() const
-{
- return m_absolute_url;
-}
-
-void OneSixLibrary::setHint(const QString &hint)
-{
- m_hint = hint;
-}
-
-QString OneSixLibrary::hint() const
-{
- return m_hint;
-}
-
-QStringList OneSixLibrary::files()
-{
- QStringList retval;
- QString storage = storagePath();
- if (storage.contains("${arch}"))
- {
- QString cooked_storage = storage;
- cooked_storage.replace("${arch}", "32");
- retval.append(cooked_storage);
- cooked_storage = storage;
- cooked_storage.replace("${arch}", "64");
- retval.append(cooked_storage);
- }
- else
- retval.append(storage);
- return retval;
-}
-
-bool OneSixLibrary::filesExist(const QDir &base)
-{
- auto libFiles = files();
- for(auto file: libFiles)
- {
- QFileInfo info(base, file);
- QLOG_WARN() << info.absoluteFilePath() << "doesn't exist";
- if (!info.exists())
- return false;
- }
- return true;
-}
-
-bool OneSixLibrary::extractTo(QString target_dir)
-{
- QString storage = storagePath();
- if (storage.contains("${arch}"))
- {
- QString cooked_storage = storage;
- cooked_storage.replace("${arch}", "32");
- QString origin = PathCombine("libraries", cooked_storage);
- QString target_dir_cooked = PathCombine(target_dir, "32");
- if (!ensureFolderPathExists(target_dir_cooked))
- {
- QLOG_ERROR() << "Couldn't create folder " + target_dir_cooked;
- return false;
- }
- if (JlCompress::extractWithExceptions(origin, target_dir_cooked, extract_excludes)
- .isEmpty())
- {
- QLOG_ERROR() << "Couldn't extract " + origin;
- return false;
- }
- cooked_storage = storage;
- cooked_storage.replace("${arch}", "64");
- origin = PathCombine("libraries", cooked_storage);
- target_dir_cooked = PathCombine(target_dir, "64");
- if (!ensureFolderPathExists(target_dir_cooked))
- {
- QLOG_ERROR() << "Couldn't create folder " + target_dir_cooked;
- return false;
- }
- if (JlCompress::extractWithExceptions(origin, target_dir_cooked, extract_excludes)
- .isEmpty())
- {
- QLOG_ERROR() << "Couldn't extract " + origin;
- return false;
- }
- }
- else
- {
- if (!ensureFolderPathExists(target_dir))
- {
- QLOG_ERROR() << "Couldn't create folder " + target_dir;
- return false;
- }
- QString path = PathCombine("libraries", storage);
- if (JlCompress::extractWithExceptions(path, target_dir, extract_excludes).isEmpty())
- {
- QLOG_ERROR() << "Couldn't extract " + path;
- return false;
- }
- }
- return true;
-}