diff options
author | Petr Mrázek <peterix@gmail.com> | 2014-07-26 23:00:35 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2014-07-26 23:00:35 +0200 |
commit | 03b13b0b3f43e830ca924338b38e1947cd0cc739 (patch) | |
tree | 08941e693ab365f934beba04d69aacf481be40d1 /logic/minecraft/OneSixLibrary.cpp | |
parent | 9b82c87c92761515a11f00540a6bf74df6c76298 (diff) | |
download | MultiMC-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.cpp | 195 |
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; -} |