From: Christian Kamm Date: Wed, 22 Jun 2016 13:30:20 +0000 (+0200) Subject: owncloudcmd: Fix --exclude regression X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~1150^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c0b0bd5b639bdd1d223497e375d55f1c080d290e;p=nextcloud-desktop.git owncloudcmd: Fix --exclude regression It's ok if the system exclude file is missing when --exclude is specified explicitly. --- diff --git a/src/cmd/cmd.cpp b/src/cmd/cmd.cpp index ab26a428b..9fe32aa94 100644 --- a/src/cmd/cmd.cpp +++ b/src/cmd/cmd.cpp @@ -443,16 +443,27 @@ restart_sync: QObject::connect(&engine, SIGNAL(finished(bool)), &app, SLOT(quit())); QObject::connect(&engine, SIGNAL(transmissionProgress(ProgressInfo)), &cmd, SLOT(transmissionProgressSlot())); + // Exclude lists - engine.excludedFiles().addExcludeFilePath(ConfigFile::excludeFileFromSystem()); - if( QFile::exists(options.exclude) ) + + bool hasUserExcludeFile = !options.exclude.isEmpty(); + QString systemExcludeFile = ConfigFile::excludeFileFromSystem(); + + // Always try to load the user-provided exclude list if one is specified + if ( hasUserExcludeFile ) { engine.excludedFiles().addExcludeFilePath(options.exclude); + } + // Load the system list if available, or if there's no user-provided list + if ( !hasUserExcludeFile || QFile::exists(systemExcludeFile) ) { + engine.excludedFiles().addExcludeFilePath(systemExcludeFile); + } + if (!engine.excludedFiles().reloadExcludes()) { - // Always make sure at least one list has been loaded qFatal("Cannot load system exclude list or list supplied via --exclude"); return EXIT_FAILURE; } + // Have to be done async, else, an error before exec() does not terminate the event loop. QMetaObject::invokeMethod(&engine, "startSync", Qt::QueuedConnection);