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;
39 if( !iComponents.isEmpty() )
40 str += " " + iComponents;
42 return( str.trimmed() );
45 QStringList Repository::toListFileNames()
49 QStringList com = iComponents.split(' ');
53 for( int i=0; i<com.count(); i++ ) {
54 QString chopUrl = iUrl.mid( iUrl.indexOf("://")+3 );
55 if( !com.at(i).isEmpty() )
59 QString str = chopUrl + iDir + disttext + iDist + "_" + com.at(i);
60 if( !com.at(i).isEmpty() )
61 str += "_binary-armel_Packages";
65 str.replace("___","_");
66 str.replace("__","_");
73 bool Repository::setFromString(QString repo)
75 QStringList parts = repo.trimmed().split(' ');
76 if( parts.count() < 3 )
79 if( parts.at(0) == "deb" ) {
81 } else if( parts.at(0) == "#deb" ) {
87 if( parts.at(1).indexOf("://") == -1 )
89 int d = parts.at(1).indexOf('/', parts.at(1).indexOf("://")+3 );
94 iUrl = parts.at(1).left(d+1);
95 iDir = parts.at(1).right( parts.at(1).length()-d-1 );
98 if( !parts.at(2).isEmpty() )
104 if( parts.count()>3 ) {
105 for(int i=3; i<parts.count(); i++)
106 iComponents += parts.at(i) + " ";
107 iComponents = iComponents.trimmed();
112 iName = iName.replace('/',' ').trimmed();
113 } else if( iDist != "" ) {
115 iName = iName.replace('/',' ').trimmed();
121 qDebug() << repo << "\n"
126 << iComponents << "\n"
128 << toString() << "\n"; */
130 set( iName, iUrl, iDir, iDist, iComponents, iEnabled ); // performs further sanity checks
135 void Repository::set(QString name, QString url_dir, QString dist, QString components, bool enabled)
140 if( url_dir.indexOf("://") == -1 )
142 int d = url_dir.indexOf('/', url_dir.indexOf("://")+3 );
147 url = url_dir.left(d+1);
148 dir = url_dir.right( url_dir.length()-d-1 );
151 set( name, url, dir, dist, components, enabled );
154 void Repository::set(QString name, QString url, QString dir, QString dist, QString components, bool enabled)
156 iName = name.trimmed();
157 iUrl = url.trimmed();
158 if( !iUrl.contains("://") )
159 iUrl.prepend("http://");
160 if( !iUrl.endsWith('/') )
162 iDir = dir.trimmed();
163 if( !iDir.endsWith('/') && !iDir.isEmpty() )
165 iDist = dist.trimmed();
166 iComponents = components.trimmed();
169 if( iDist.isEmpty() )
172 // ensure that the protocol part of the URL is lowercase
173 int pos = iUrl.indexOf("://");
174 QString proto = iUrl.left(pos);
175 iUrl = proto.toLower() + iUrl.mid(pos);