2 This file is part of Faster Application Manager.
4 Faster Application Manager is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 Faster Application Manager is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with Faster Application Manager. If not, see <http://www.gnu.org/licenses/>.
17 (C) Heikki Holstila 2010
21 #include "repository.h"
23 #include "aaptinterface.h"
25 Repository::Repository()
30 QString Repository::toString()
38 str += iUrl + iDir + " " + iDist + " " + iComponents;
40 return( str.trimmed() );
43 QStringList Repository::toListFileNames()
47 QStringList com = iComponents.split(' ');
51 for( int i=0; i<com.count(); i++ ) {
52 QString chopUrl = iUrl.mid( iUrl.indexOf("://")+3 );
57 QString str = chopUrl + iDir + disttext + iDist + "_" + com.at(i);
59 str += "_binary-armel_Packages";
63 str.replace("___","_");
64 str.replace("__","_");
71 bool Repository::setFromString(QString repo)
73 QStringList parts = repo.trimmed().split(' ');
74 if( parts.count() < 3 )
77 if( parts.at(0) == "deb" ) {
79 } else if( parts.at(0) == "#deb" ) {
85 if( parts.at(1).indexOf("://") == -1 )
87 int d = parts.at(1).indexOf('/', parts.at(1).indexOf("://")+3 );
92 iUrl = parts.at(1).left(d+1);
93 iDir = parts.at(1).right( parts.at(1).length()-d-1 );
102 if( parts.count()>3 ) {
103 for(int i=3; i<parts.count(); i++)
104 iComponents += parts.at(i) + " ";
105 iComponents = iComponents.trimmed();
110 iName = iName.replace('/',' ').trimmed();
111 } else if( iDist != "" ) {
113 iName = iName.replace('/',' ').trimmed();
119 qDebug() << repo << "\n"
124 << iComponents << "\n"
126 << toString() << "\n"; */
128 set( iName, iUrl, iDir, iDist, iComponents, iEnabled ); // performs further sanity checks
133 void Repository::set(QString name, QString url_dir, QString dist, QString components, bool enabled)
138 if( url_dir.indexOf("://") == -1 )
140 int d = url_dir.indexOf('/', url_dir.indexOf("://")+3 );
145 url = url_dir.left(d+1);
146 dir = url_dir.right( url_dir.length()-d-1 );
149 set( name, url, dir, dist, components, enabled );
152 void Repository::set(QString name, QString url, QString dir, QString dist, QString components, bool enabled)
154 iName = name.trimmed();
155 iUrl = url.trimmed();
156 if( !iUrl.contains("://") )
157 iUrl.prepend("http://");
158 if( !iUrl.endsWith('/') )
160 iDir = dir.trimmed();
161 if( !iDir.endsWith('/') && iDir!="" )
163 iDist = dist.trimmed();
164 iComponents = components.trimmed();
167 // ensure that the protocol part of the URL is lowercase
168 int pos = iUrl.indexOf("://");
169 QString proto = iUrl.left(pos);
170 iUrl = proto.toLower() + iUrl.mid(pos);