summaryrefslogtreecommitdiffstats
path: root/libmultimc/src/library.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libmultimc/src/library.cpp')
-rw-r--r--libmultimc/src/library.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/libmultimc/src/library.cpp b/libmultimc/src/library.cpp
index 9d4cc6e3..691786e8 100644
--- a/libmultimc/src/library.cpp
+++ b/libmultimc/src/library.cpp
@@ -34,4 +34,48 @@ OpSys OpSys_fromString(QString name)
return Os_OSX;
return Os_Other;
}
+
+void Library::finalize()
+{
+ QStringList parts = m_name.split ( ':' );
+ QString relative = parts[0];
+ relative.replace ( '.','/' );
+ relative += '/' + parts[1] + '/' + parts[2] + '/' + parts[1] + '-' + parts[2];
+ if ( !m_is_native )
+ relative += ".jar";
+ else
+ {
+ if ( m_native_suffixes.contains ( currentSystem ) )
+ {
+ relative += "-" + m_native_suffixes[currentSystem] + ".jar";
+ }
+ else
+ {
+ // really, bad.
+ relative += ".jar";
+ }
+ }
+ m_storage_path = relative;
+ m_download_path = m_base_url + 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 ( m_is_native )
+ {
+ m_is_active = m_is_active && m_native_suffixes.contains ( currentSystem );
+ }
+}
// default url for lib: