author | andyq <andyq> | 2002-10-16 23:08:08 (UTC) |
---|---|---|
committer | andyq <andyq> | 2002-10-16 23:08:08 (UTC) |
commit | 593fe744126a398e2714070137b6f19e398d2c9d (patch) (unidiff) | |
tree | 3cf11467787c4f8860bc8f5f87ceaab87ea8b2f4 | |
parent | 196a3f566bdc5bd6188f2265e05adbdb519a6e09 (diff) | |
download | opie-593fe744126a398e2714070137b6f19e398d2c9d.zip opie-593fe744126a398e2714070137b6f19e398d2c9d.tar.gz opie-593fe744126a398e2714070137b6f19e398d2c9d.tar.bz2 |
Fixed bug with linking files
-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index f8513e4..6d0edad 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp | |||
@@ -104,24 +104,25 @@ bool Ipkg :: runIpkg( ) | |||
104 | 104 | ||
105 | qApp->processEvents(); | 105 | qApp->processEvents(); |
106 | 106 | ||
107 | // If we are removing packages and make links option is selected | 107 | // If we are removing packages and make links option is selected |
108 | // create the links | 108 | // create the links |
109 | if ( option == "remove" ) | 109 | if ( option == "remove" ) |
110 | { | 110 | { |
111 | createLinks = false; | 111 | createLinks = false; |
112 | if ( flags & MAKE_LINKS ) | 112 | if ( flags & MAKE_LINKS ) |
113 | { | 113 | { |
114 | emit outputText( QString( "Removing symbolic links...\n" ) ); | 114 | emit outputText( QString( "Removing symbolic links...\n" ) ); |
115 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); | 115 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); |
116 | emit outputText( QString( " " ) ); | ||
116 | } | 117 | } |
117 | } | 118 | } |
118 | 119 | ||
119 | emit outputText( cmd ); | 120 | emit outputText( cmd ); |
120 | 121 | ||
121 | // Execute command | 122 | // Execute command |
122 | dependantPackages = new QList<QString>; | 123 | dependantPackages = new QList<QString>; |
123 | dependantPackages->setAutoDelete( true ); | 124 | dependantPackages->setAutoDelete( true ); |
124 | 125 | ||
125 | ret = executeIpkgCommand( cmd, option ); | 126 | ret = executeIpkgCommand( cmd, option ); |
126 | 127 | ||
127 | if ( option == "install" ) | 128 | if ( option == "install" ) |
@@ -131,24 +132,26 @@ bool Ipkg :: runIpkg( ) | |||
131 | createLinks = true; | 132 | createLinks = true; |
132 | if ( flags & MAKE_LINKS ) | 133 | if ( flags & MAKE_LINKS ) |
133 | { | 134 | { |
134 | emit outputText( " " ); | 135 | emit outputText( " " ); |
135 | emit outputText( QString( "Creating symbolic links for " )+ package ); | 136 | emit outputText( QString( "Creating symbolic links for " )+ package ); |
136 | 137 | ||
137 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); | 138 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); |
138 | 139 | ||
139 | // link dependant packages that were installed with this release | 140 | // link dependant packages that were installed with this release |
140 | QString *pkg; | 141 | QString *pkg; |
141 | for ( pkg = dependantPackages->first(); pkg != 0; pkg = dependantPackages->next() ) | 142 | for ( pkg = dependantPackages->first(); pkg != 0; pkg = dependantPackages->next() ) |
142 | { | 143 | { |
144 | if ( *pkg == package ) | ||
145 | continue; | ||
143 | emit outputText( " " ); | 146 | emit outputText( " " ); |
144 | emit outputText( QString( "Creating symbolic links for " )+ (*pkg) ); | 147 | emit outputText( QString( "Creating symbolic links for " )+ (*pkg) ); |
145 | linkPackage( Utils::getPackageNameFromIpkFilename( *pkg ), destination, destDir ); | 148 | linkPackage( Utils::getPackageNameFromIpkFilename( *pkg ), destination, destDir ); |
146 | } | 149 | } |
147 | } | 150 | } |
148 | } | 151 | } |
149 | 152 | ||
150 | delete dependantPackages; | 153 | delete dependantPackages; |
151 | 154 | ||
152 | emit outputText( QString( "Finished - status=" ) + (ret ? "success" : "failure") ); | 155 | emit outputText( QString( "Finished - status=" ) + (ret ? "success" : "failure") ); |
153 | return ret; | 156 | return ret; |
154 | } | 157 | } |
@@ -275,35 +278,44 @@ void Ipkg :: processFileList( const QStringList *fileList, const QString &destDi | |||
275 | if ( createLinks == true ) | 278 | if ( createLinks == true ) |
276 | { | 279 | { |
277 | for ( uint i=0; i < fileList->count(); i++ ) | 280 | for ( uint i=0; i < fileList->count(); i++ ) |
278 | { | 281 | { |
279 | processLinkDir( (*fileList)[i], baseDir, destDir ); | 282 | processLinkDir( (*fileList)[i], baseDir, destDir ); |
280 | qApp->processEvents(); | 283 | qApp->processEvents(); |
281 | } | 284 | } |
282 | } | 285 | } |
283 | else | 286 | else |
284 | { | 287 | { |
285 | for ( int i = fileList->count()-1; i >= 0 ; i-- ) | 288 | for ( int i = fileList->count()-1; i >= 0 ; i-- ) |
286 | { | 289 | { |
287 | cout << "i = " << i << ", Dealing with " << (*fileList)[i] << endl; | ||
288 | processLinkDir( (*fileList)[i], baseDir, destDir ); | 290 | processLinkDir( (*fileList)[i], baseDir, destDir ); |
289 | qApp->processEvents(); | 291 | qApp->processEvents(); |
290 | } | 292 | } |
291 | } | 293 | } |
292 | } | 294 | } |
293 | 295 | ||
294 | void Ipkg :: processLinkDir( const QString &file, const QString &destDir, const QString &baseDir ) | 296 | void Ipkg :: processLinkDir( const QString &file, const QString &destDir, const QString &baseDir ) |
295 | { | 297 | { |
298 | |||
296 | QString sourceFile = baseDir + file; | 299 | QString sourceFile = baseDir + file; |
297 | QString linkFile = destDir + file; | 300 | |
301 | QString linkFile = destDir; | ||
302 | if ( file.startsWith( "/" ) && destDir.right( 1 ) == "/" ) | ||
303 | { | ||
304 | linkFile += file.mid( 1 ); | ||
305 | } | ||
306 | else | ||
307 | { | ||
308 | linkFile += file; | ||
309 | } | ||
298 | QString text; | 310 | QString text; |
299 | if ( createLinks ) | 311 | if ( createLinks ) |
300 | { | 312 | { |
301 | // If this file is a directory (ends with a /) and it doesn't exist, | 313 | // If this file is a directory (ends with a /) and it doesn't exist, |
302 | // we need to create it | 314 | // we need to create it |
303 | if ( file.right(1) == "/" ) | 315 | if ( file.right(1) == "/" ) |
304 | { | 316 | { |
305 | QFileInfo f( linkFile ); | 317 | QFileInfo f( linkFile ); |
306 | if ( !f.exists() ) | 318 | if ( !f.exists() ) |
307 | { | 319 | { |
308 | emit outputText( QString( "Creating directory " ) + linkFile ); | 320 | emit outputText( QString( "Creating directory " ) + linkFile ); |
309 | QDir d; | 321 | QDir d; |