Completed
Pull Request — master (#3829)
by Maxence
12:57
created
apps/files/lib/Command/DeleteOrphanedFiles.php 1 patch
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -35,51 +35,51 @@
 block discarded – undo
35 35
  */
36 36
 class DeleteOrphanedFiles extends Command {
37 37
 
38
-	const CHUNK_SIZE = 200;
38
+    const CHUNK_SIZE = 200;
39 39
 
40
-	/**
41
-	 * @var IDBConnection
42
-	 */
43
-	protected $connection;
40
+    /**
41
+     * @var IDBConnection
42
+     */
43
+    protected $connection;
44 44
 
45
-	public function __construct(IDBConnection $connection) {
46
-		$this->connection = $connection;
47
-		parent::__construct();
48
-	}
45
+    public function __construct(IDBConnection $connection) {
46
+        $this->connection = $connection;
47
+        parent::__construct();
48
+    }
49 49
 
50
-	protected function configure() {
51
-		$this
52
-			->setName('files:cleanup')
53
-			->setDescription('cleanup filecache');
54
-	}
50
+    protected function configure() {
51
+        $this
52
+            ->setName('files:cleanup')
53
+            ->setDescription('cleanup filecache');
54
+    }
55 55
 
56
-	public function execute(InputInterface $input, OutputInterface $output) {
57
-		$deletedEntries = 0;
56
+    public function execute(InputInterface $input, OutputInterface $output) {
57
+        $deletedEntries = 0;
58 58
 
59
-		$query = $this->connection->getQueryBuilder();
60
-		$query->select('fc.fileid')
61
-			->from('filecache', 'fc')
62
-			->where($query->expr()->isNull('s.numeric_id'))
63
-			->leftJoin('fc', 'storages', 's', $query->expr()->eq('fc.storage', 's.numeric_id'))
64
-			->setMaxResults(self::CHUNK_SIZE);
59
+        $query = $this->connection->getQueryBuilder();
60
+        $query->select('fc.fileid')
61
+            ->from('filecache', 'fc')
62
+            ->where($query->expr()->isNull('s.numeric_id'))
63
+            ->leftJoin('fc', 'storages', 's', $query->expr()->eq('fc.storage', 's.numeric_id'))
64
+            ->setMaxResults(self::CHUNK_SIZE);
65 65
 
66
-		$deleteQuery = $this->connection->getQueryBuilder();
67
-		$deleteQuery->delete('filecache')
68
-			->where($deleteQuery->expr()->eq('fileid', $deleteQuery->createParameter('objectid')));
66
+        $deleteQuery = $this->connection->getQueryBuilder();
67
+        $deleteQuery->delete('filecache')
68
+            ->where($deleteQuery->expr()->eq('fileid', $deleteQuery->createParameter('objectid')));
69 69
 
70
-		$deletedInLastChunk = self::CHUNK_SIZE;
71
-		while ($deletedInLastChunk === self::CHUNK_SIZE) {
72
-			$deletedInLastChunk = 0;
73
-			$result = $query->execute();
74
-			while ($row = $result->fetch()) {
75
-				$deletedInLastChunk++;
76
-				$deletedEntries += $deleteQuery->setParameter('objectid', (int) $row['fileid'])
77
-					->execute();
78
-			}
79
-			$result->closeCursor();
80
-		}
70
+        $deletedInLastChunk = self::CHUNK_SIZE;
71
+        while ($deletedInLastChunk === self::CHUNK_SIZE) {
72
+            $deletedInLastChunk = 0;
73
+            $result = $query->execute();
74
+            while ($row = $result->fetch()) {
75
+                $deletedInLastChunk++;
76
+                $deletedEntries += $deleteQuery->setParameter('objectid', (int) $row['fileid'])
77
+                    ->execute();
78
+            }
79
+            $result->closeCursor();
80
+        }
81 81
 
82
-		$output->writeln("$deletedEntries orphaned file cache entries deleted");
83
-	}
82
+        $output->writeln("$deletedEntries orphaned file cache entries deleted");
83
+    }
84 84
 
85 85
 }
Please login to merge, or discard this patch.
apps/files/lib/Command/TransferOwnership.php 2 patches
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
 		$progress->start();
157 157
 		$self = $this;
158 158
 		$this->walkFiles($view, "$this->sourceUser/files",
159
-				function (FileInfo $fileInfo) use ($progress, $self) {
159
+				function(FileInfo $fileInfo) use ($progress, $self) {
160 160
 					if ($fileInfo->getType() === FileInfo::TYPE_FOLDER) {
161 161
 						// only analyze into folders from main storage,
162 162
 						if (!$fileInfo->getStorage()->instanceOfStorage(IHomeStorage::class)) {
@@ -177,9 +177,9 @@  discard block
 block discarded – undo
177 177
 		// no file is allowed to be encrypted
178 178
 		if (!empty($this->encryptedFiles)) {
179 179
 			$output->writeln("<error>Some files are encrypted - please decrypt them first</error>");
180
-			foreach($this->encryptedFiles as $encryptedFile) {
180
+			foreach ($this->encryptedFiles as $encryptedFile) {
181 181
 				/** @var FileInfo $encryptedFile */
182
-				$output->writeln("  " . $encryptedFile->getPath());
182
+				$output->writeln("  ".$encryptedFile->getPath());
183 183
 			}
184 184
 			throw new \Exception('Execution terminated.');
185 185
 		}
@@ -193,7 +193,7 @@  discard block
 block discarded – undo
193 193
 		$output->writeln("Collecting all share information for files and folder of $this->sourceUser ...");
194 194
 
195 195
 		$progress = new ProgressBar($output, count($this->shares));
196
-		foreach([\OCP\Share::SHARE_TYPE_GROUP, \OCP\Share::SHARE_TYPE_USER, \OCP\Share::SHARE_TYPE_LINK, \OCP\Share::SHARE_TYPE_REMOTE] as $shareType) {
196
+		foreach ([\OCP\Share::SHARE_TYPE_GROUP, \OCP\Share::SHARE_TYPE_USER, \OCP\Share::SHARE_TYPE_LINK, \OCP\Share::SHARE_TYPE_REMOTE] as $shareType) {
197 197
 		$offset = 0;
198 198
 			while (true) {
199 199
 				$sharePage = $this->shareManager->getSharesBy($this->sourceUser, $shareType, null, true, 50, $offset);
@@ -228,11 +228,11 @@  discard block
 block discarded – undo
228 228
 		$output->writeln("Restoring shares ...");
229 229
 		$progress = new ProgressBar($output, count($this->shares));
230 230
 
231
-		foreach($this->shares as $share) {
231
+		foreach ($this->shares as $share) {
232 232
 			try {
233 233
 				if ($share->getSharedWith() === $this->destinationUser) {
234 234
 					// Unmount the shares before deleting, so we don't try to get the storage later on.
235
-					$shareMountPoint = $this->mountManager->find('/' . $this->destinationUser . '/files' . $share->getTarget());
235
+					$shareMountPoint = $this->mountManager->find('/'.$this->destinationUser.'/files'.$share->getTarget());
236 236
 					if ($shareMountPoint) {
237 237
 						$this->mountManager->removeMount($shareMountPoint->getMountPoint());
238 238
 					}
@@ -248,9 +248,9 @@  discard block
 block discarded – undo
248 248
 					$this->shareManager->updateShare($share);
249 249
 				}
250 250
 			} catch (\OCP\Files\NotFoundException $e) {
251
-				$output->writeln('<error>Share with id ' . $share->getId() . ' points at deleted file, skipping</error>');
251
+				$output->writeln('<error>Share with id '.$share->getId().' points at deleted file, skipping</error>');
252 252
 			} catch (\Exception $e) {
253
-				$output->writeln('<error>Could not restore share with id ' . $share->getId() . ':' . $e->getTraceAsString() . '</error>');
253
+				$output->writeln('<error>Could not restore share with id '.$share->getId().':'.$e->getTraceAsString().'</error>');
254 254
 			}
255 255
 			$progress->advance();
256 256
 		}
Please login to merge, or discard this patch.
Indentation   +216 added lines, -216 removed lines patch added patch discarded remove patch
@@ -41,220 +41,220 @@
 block discarded – undo
41 41
 
42 42
 class TransferOwnership extends Command {
43 43
 
44
-	/** @var IUserManager $userManager */
45
-	private $userManager;
46
-
47
-	/** @var IManager */
48
-	private $shareManager;
49
-
50
-	/** @var IMountManager */
51
-	private $mountManager;
52
-
53
-	/** @var FileInfo[] */
54
-	private $allFiles = [];
55
-
56
-	/** @var FileInfo[] */
57
-	private $encryptedFiles = [];
58
-
59
-	/** @var IShare[] */
60
-	private $shares = [];
61
-
62
-	/** @var string */
63
-	private $sourceUser;
64
-
65
-	/** @var string */
66
-	private $destinationUser;
67
-
68
-	/** @var string */
69
-	private $finalTarget;
70
-
71
-	public function __construct(IUserManager $userManager, IManager $shareManager, IMountManager $mountManager) {
72
-		$this->userManager = $userManager;
73
-		$this->shareManager = $shareManager;
74
-		$this->mountManager = $mountManager;
75
-		parent::__construct();
76
-	}
77
-
78
-	protected function configure() {
79
-		$this
80
-			->setName('files:transfer-ownership')
81
-			->setDescription('All files and folders are moved to another user - shares are moved as well.')
82
-			->addArgument(
83
-				'source-user',
84
-				InputArgument::REQUIRED,
85
-				'owner of files which shall be moved'
86
-			)
87
-			->addArgument(
88
-				'destination-user',
89
-				InputArgument::REQUIRED,
90
-				'user who will be the new owner of the files'
91
-			);
92
-	}
93
-
94
-	protected function execute(InputInterface $input, OutputInterface $output) {
95
-		$sourceUserObject = $this->userManager->get($input->getArgument('source-user'));
96
-		$destinationUserObject = $this->userManager->get($input->getArgument('destination-user'));
97
-
98
-		if (!$sourceUserObject instanceof IUser) {
99
-			$output->writeln("<error>Unknown source user $this->sourceUser</error>");
100
-			return 1;
101
-		}
102
-
103
-		if (!$destinationUserObject instanceof IUser) {
104
-			$output->writeln("<error>Unknown destination user $this->destinationUser</error>");
105
-			return 1;
106
-		}
107
-
108
-		$this->sourceUser = $sourceUserObject->getUID();
109
-		$this->destinationUser = $destinationUserObject->getUID();
110
-
111
-		// target user has to be ready
112
-		if (!\OC::$server->getEncryptionManager()->isReadyForUser($this->destinationUser)) {
113
-			$output->writeln("<error>The target user is not ready to accept files. The user has at least to be logged in once.</error>");
114
-			return 2;
115
-		}
116
-
117
-		$date = date('Y-m-d H-i-s');
118
-		$this->finalTarget = "$this->destinationUser/files/transferred from $this->sourceUser on $date";
119
-
120
-		// setup filesystem
121
-		Filesystem::initMountPoints($this->sourceUser);
122
-		Filesystem::initMountPoints($this->destinationUser);
123
-
124
-		// analyse source folder
125
-		$this->analyse($output);
126
-
127
-		// collect all the shares
128
-		$this->collectUsersShares($output);
129
-
130
-		// transfer the files
131
-		$this->transfer($output);
132
-
133
-		// restore the shares
134
-		$this->restoreShares($output);
135
-	}
136
-
137
-	private function walkFiles(View $view, $path, \Closure $callBack) {
138
-		foreach ($view->getDirectoryContent($path) as $fileInfo) {
139
-			if (!$callBack($fileInfo)) {
140
-				return;
141
-			}
142
-			if ($fileInfo->getType() === FileInfo::TYPE_FOLDER) {
143
-				$this->walkFiles($view, $fileInfo->getPath(), $callBack);
144
-			}
145
-		}
146
-	}
147
-
148
-	/**
149
-	 * @param OutputInterface $output
150
-	 * @throws \Exception
151
-	 */
152
-	protected function analyse(OutputInterface $output) {
153
-		$view = new View();
154
-		$output->writeln("Analysing files of $this->sourceUser ...");
155
-		$progress = new ProgressBar($output);
156
-		$progress->start();
157
-		$self = $this;
158
-		$this->walkFiles($view, "$this->sourceUser/files",
159
-				function (FileInfo $fileInfo) use ($progress, $self) {
160
-					if ($fileInfo->getType() === FileInfo::TYPE_FOLDER) {
161
-						// only analyze into folders from main storage,
162
-						if (!$fileInfo->getStorage()->instanceOfStorage(IHomeStorage::class)) {
163
-							return false;
164
-						}
165
-						return true;
166
-					}
167
-					$progress->advance();
168
-					$this->allFiles[] = $fileInfo;
169
-					if ($fileInfo->isEncrypted()) {
170
-						$this->encryptedFiles[] = $fileInfo;
171
-					}
172
-					return true;
173
-				});
174
-		$progress->finish();
175
-		$output->writeln('');
176
-
177
-		// no file is allowed to be encrypted
178
-		if (!empty($this->encryptedFiles)) {
179
-			$output->writeln("<error>Some files are encrypted - please decrypt them first</error>");
180
-			foreach($this->encryptedFiles as $encryptedFile) {
181
-				/** @var FileInfo $encryptedFile */
182
-				$output->writeln("  " . $encryptedFile->getPath());
183
-			}
184
-			throw new \Exception('Execution terminated.');
185
-		}
186
-
187
-	}
188
-
189
-	/**
190
-	 * @param OutputInterface $output
191
-	 */
192
-	private function collectUsersShares(OutputInterface $output) {
193
-		$output->writeln("Collecting all share information for files and folder of $this->sourceUser ...");
194
-
195
-		$progress = new ProgressBar($output, count($this->shares));
196
-		foreach([\OCP\Share::SHARE_TYPE_GROUP, \OCP\Share::SHARE_TYPE_USER, \OCP\Share::SHARE_TYPE_LINK, \OCP\Share::SHARE_TYPE_REMOTE] as $shareType) {
197
-		$offset = 0;
198
-			while (true) {
199
-				$sharePage = $this->shareManager->getSharesBy($this->sourceUser, $shareType, null, true, 50, $offset);
200
-				$progress->advance(count($sharePage));
201
-				if (empty($sharePage)) {
202
-					break;
203
-				}
204
-				$this->shares = array_merge($this->shares, $sharePage);
205
-				$offset += 50;
206
-			}
207
-		}
208
-
209
-		$progress->finish();
210
-		$output->writeln('');
211
-	}
212
-
213
-	/**
214
-	 * @param OutputInterface $output
215
-	 */
216
-	protected function transfer(OutputInterface $output) {
217
-		$view = new View();
218
-		$output->writeln("Transferring files to $this->finalTarget ...");
219
-		$view->rename("$this->sourceUser/files", $this->finalTarget);
220
-		// because the files folder is moved away we need to recreate it
221
-		$view->mkdir("$this->sourceUser/files");
222
-	}
223
-
224
-	/**
225
-	 * @param OutputInterface $output
226
-	 */
227
-	private function restoreShares(OutputInterface $output) {
228
-		$output->writeln("Restoring shares ...");
229
-		$progress = new ProgressBar($output, count($this->shares));
230
-
231
-		foreach($this->shares as $share) {
232
-			try {
233
-				if ($share->getSharedWith() === $this->destinationUser) {
234
-					// Unmount the shares before deleting, so we don't try to get the storage later on.
235
-					$shareMountPoint = $this->mountManager->find('/' . $this->destinationUser . '/files' . $share->getTarget());
236
-					if ($shareMountPoint) {
237
-						$this->mountManager->removeMount($shareMountPoint->getMountPoint());
238
-					}
239
-					$this->shareManager->deleteShare($share);
240
-				} else {
241
-					if ($share->getShareOwner() === $this->sourceUser) {
242
-						$share->setShareOwner($this->destinationUser);
243
-					}
244
-					if ($share->getSharedBy() === $this->sourceUser) {
245
-						$share->setSharedBy($this->destinationUser);
246
-					}
247
-
248
-					$this->shareManager->updateShare($share);
249
-				}
250
-			} catch (\OCP\Files\NotFoundException $e) {
251
-				$output->writeln('<error>Share with id ' . $share->getId() . ' points at deleted file, skipping</error>');
252
-			} catch (\Exception $e) {
253
-				$output->writeln('<error>Could not restore share with id ' . $share->getId() . ':' . $e->getTraceAsString() . '</error>');
254
-			}
255
-			$progress->advance();
256
-		}
257
-		$progress->finish();
258
-		$output->writeln('');
259
-	}
44
+    /** @var IUserManager $userManager */
45
+    private $userManager;
46
+
47
+    /** @var IManager */
48
+    private $shareManager;
49
+
50
+    /** @var IMountManager */
51
+    private $mountManager;
52
+
53
+    /** @var FileInfo[] */
54
+    private $allFiles = [];
55
+
56
+    /** @var FileInfo[] */
57
+    private $encryptedFiles = [];
58
+
59
+    /** @var IShare[] */
60
+    private $shares = [];
61
+
62
+    /** @var string */
63
+    private $sourceUser;
64
+
65
+    /** @var string */
66
+    private $destinationUser;
67
+
68
+    /** @var string */
69
+    private $finalTarget;
70
+
71
+    public function __construct(IUserManager $userManager, IManager $shareManager, IMountManager $mountManager) {
72
+        $this->userManager = $userManager;
73
+        $this->shareManager = $shareManager;
74
+        $this->mountManager = $mountManager;
75
+        parent::__construct();
76
+    }
77
+
78
+    protected function configure() {
79
+        $this
80
+            ->setName('files:transfer-ownership')
81
+            ->setDescription('All files and folders are moved to another user - shares are moved as well.')
82
+            ->addArgument(
83
+                'source-user',
84
+                InputArgument::REQUIRED,
85
+                'owner of files which shall be moved'
86
+            )
87
+            ->addArgument(
88
+                'destination-user',
89
+                InputArgument::REQUIRED,
90
+                'user who will be the new owner of the files'
91
+            );
92
+    }
93
+
94
+    protected function execute(InputInterface $input, OutputInterface $output) {
95
+        $sourceUserObject = $this->userManager->get($input->getArgument('source-user'));
96
+        $destinationUserObject = $this->userManager->get($input->getArgument('destination-user'));
97
+
98
+        if (!$sourceUserObject instanceof IUser) {
99
+            $output->writeln("<error>Unknown source user $this->sourceUser</error>");
100
+            return 1;
101
+        }
102
+
103
+        if (!$destinationUserObject instanceof IUser) {
104
+            $output->writeln("<error>Unknown destination user $this->destinationUser</error>");
105
+            return 1;
106
+        }
107
+
108
+        $this->sourceUser = $sourceUserObject->getUID();
109
+        $this->destinationUser = $destinationUserObject->getUID();
110
+
111
+        // target user has to be ready
112
+        if (!\OC::$server->getEncryptionManager()->isReadyForUser($this->destinationUser)) {
113
+            $output->writeln("<error>The target user is not ready to accept files. The user has at least to be logged in once.</error>");
114
+            return 2;
115
+        }
116
+
117
+        $date = date('Y-m-d H-i-s');
118
+        $this->finalTarget = "$this->destinationUser/files/transferred from $this->sourceUser on $date";
119
+
120
+        // setup filesystem
121
+        Filesystem::initMountPoints($this->sourceUser);
122
+        Filesystem::initMountPoints($this->destinationUser);
123
+
124
+        // analyse source folder
125
+        $this->analyse($output);
126
+
127
+        // collect all the shares
128
+        $this->collectUsersShares($output);
129
+
130
+        // transfer the files
131
+        $this->transfer($output);
132
+
133
+        // restore the shares
134
+        $this->restoreShares($output);
135
+    }
136
+
137
+    private function walkFiles(View $view, $path, \Closure $callBack) {
138
+        foreach ($view->getDirectoryContent($path) as $fileInfo) {
139
+            if (!$callBack($fileInfo)) {
140
+                return;
141
+            }
142
+            if ($fileInfo->getType() === FileInfo::TYPE_FOLDER) {
143
+                $this->walkFiles($view, $fileInfo->getPath(), $callBack);
144
+            }
145
+        }
146
+    }
147
+
148
+    /**
149
+     * @param OutputInterface $output
150
+     * @throws \Exception
151
+     */
152
+    protected function analyse(OutputInterface $output) {
153
+        $view = new View();
154
+        $output->writeln("Analysing files of $this->sourceUser ...");
155
+        $progress = new ProgressBar($output);
156
+        $progress->start();
157
+        $self = $this;
158
+        $this->walkFiles($view, "$this->sourceUser/files",
159
+                function (FileInfo $fileInfo) use ($progress, $self) {
160
+                    if ($fileInfo->getType() === FileInfo::TYPE_FOLDER) {
161
+                        // only analyze into folders from main storage,
162
+                        if (!$fileInfo->getStorage()->instanceOfStorage(IHomeStorage::class)) {
163
+                            return false;
164
+                        }
165
+                        return true;
166
+                    }
167
+                    $progress->advance();
168
+                    $this->allFiles[] = $fileInfo;
169
+                    if ($fileInfo->isEncrypted()) {
170
+                        $this->encryptedFiles[] = $fileInfo;
171
+                    }
172
+                    return true;
173
+                });
174
+        $progress->finish();
175
+        $output->writeln('');
176
+
177
+        // no file is allowed to be encrypted
178
+        if (!empty($this->encryptedFiles)) {
179
+            $output->writeln("<error>Some files are encrypted - please decrypt them first</error>");
180
+            foreach($this->encryptedFiles as $encryptedFile) {
181
+                /** @var FileInfo $encryptedFile */
182
+                $output->writeln("  " . $encryptedFile->getPath());
183
+            }
184
+            throw new \Exception('Execution terminated.');
185
+        }
186
+
187
+    }
188
+
189
+    /**
190
+     * @param OutputInterface $output
191
+     */
192
+    private function collectUsersShares(OutputInterface $output) {
193
+        $output->writeln("Collecting all share information for files and folder of $this->sourceUser ...");
194
+
195
+        $progress = new ProgressBar($output, count($this->shares));
196
+        foreach([\OCP\Share::SHARE_TYPE_GROUP, \OCP\Share::SHARE_TYPE_USER, \OCP\Share::SHARE_TYPE_LINK, \OCP\Share::SHARE_TYPE_REMOTE] as $shareType) {
197
+        $offset = 0;
198
+            while (true) {
199
+                $sharePage = $this->shareManager->getSharesBy($this->sourceUser, $shareType, null, true, 50, $offset);
200
+                $progress->advance(count($sharePage));
201
+                if (empty($sharePage)) {
202
+                    break;
203
+                }
204
+                $this->shares = array_merge($this->shares, $sharePage);
205
+                $offset += 50;
206
+            }
207
+        }
208
+
209
+        $progress->finish();
210
+        $output->writeln('');
211
+    }
212
+
213
+    /**
214
+     * @param OutputInterface $output
215
+     */
216
+    protected function transfer(OutputInterface $output) {
217
+        $view = new View();
218
+        $output->writeln("Transferring files to $this->finalTarget ...");
219
+        $view->rename("$this->sourceUser/files", $this->finalTarget);
220
+        // because the files folder is moved away we need to recreate it
221
+        $view->mkdir("$this->sourceUser/files");
222
+    }
223
+
224
+    /**
225
+     * @param OutputInterface $output
226
+     */
227
+    private function restoreShares(OutputInterface $output) {
228
+        $output->writeln("Restoring shares ...");
229
+        $progress = new ProgressBar($output, count($this->shares));
230
+
231
+        foreach($this->shares as $share) {
232
+            try {
233
+                if ($share->getSharedWith() === $this->destinationUser) {
234
+                    // Unmount the shares before deleting, so we don't try to get the storage later on.
235
+                    $shareMountPoint = $this->mountManager->find('/' . $this->destinationUser . '/files' . $share->getTarget());
236
+                    if ($shareMountPoint) {
237
+                        $this->mountManager->removeMount($shareMountPoint->getMountPoint());
238
+                    }
239
+                    $this->shareManager->deleteShare($share);
240
+                } else {
241
+                    if ($share->getShareOwner() === $this->sourceUser) {
242
+                        $share->setShareOwner($this->destinationUser);
243
+                    }
244
+                    if ($share->getSharedBy() === $this->sourceUser) {
245
+                        $share->setSharedBy($this->destinationUser);
246
+                    }
247
+
248
+                    $this->shareManager->updateShare($share);
249
+                }
250
+            } catch (\OCP\Files\NotFoundException $e) {
251
+                $output->writeln('<error>Share with id ' . $share->getId() . ' points at deleted file, skipping</error>');
252
+            } catch (\Exception $e) {
253
+                $output->writeln('<error>Could not restore share with id ' . $share->getId() . ':' . $e->getTraceAsString() . '</error>');
254
+            }
255
+            $progress->advance();
256
+        }
257
+        $progress->finish();
258
+        $output->writeln('');
259
+    }
260 260
 }
Please login to merge, or discard this patch.
apps/files/lib/Command/Scan.php 3 patches
Indentation   +276 added lines, -276 removed lines patch added patch discarded remove patch
@@ -42,305 +42,305 @@
 block discarded – undo
42 42
 
43 43
 class Scan extends Base {
44 44
 
45
-	/** @var IUserManager $userManager */
46
-	private $userManager;
47
-	/** @var float */
48
-	protected $execTime = 0;
49
-	/** @var int */
50
-	protected $foldersCounter = 0;
51
-	/** @var int */
52
-	protected $filesCounter = 0;
45
+    /** @var IUserManager $userManager */
46
+    private $userManager;
47
+    /** @var float */
48
+    protected $execTime = 0;
49
+    /** @var int */
50
+    protected $foldersCounter = 0;
51
+    /** @var int */
52
+    protected $filesCounter = 0;
53 53
 
54
-	public function __construct(IUserManager $userManager) {
55
-		$this->userManager = $userManager;
56
-		parent::__construct();
57
-	}
54
+    public function __construct(IUserManager $userManager) {
55
+        $this->userManager = $userManager;
56
+        parent::__construct();
57
+    }
58 58
 
59
-	protected function configure() {
60
-		parent::configure();
59
+    protected function configure() {
60
+        parent::configure();
61 61
 
62
-		$this
63
-			->setName('files:scan')
64
-			->setDescription('rescan filesystem')
65
-			->addArgument(
66
-				'user_id',
67
-				InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
68
-				'will rescan all files of the given user(s)'
69
-			)
70
-			->addOption(
71
-				'path',
72
-				'p',
73
-				InputArgument::OPTIONAL,
74
-				'limit rescan to this path, eg. --path="/alice/files/Music", the user_id is determined by the path and the user_id parameter and --all are ignored'
75
-			)
76
-			->addOption(
77
-				'quiet',
78
-				'q',
79
-				InputOption::VALUE_NONE,
80
-				'suppress any output'
81
-			)
82
-			->addOption(
83
-				'verbose',
84
-				'-v|vv|vvv',
85
-				InputOption::VALUE_NONE,
86
-				'verbose the output'
87
-			)
88
-			->addOption(
89
-				'all',
90
-				null,
91
-				InputOption::VALUE_NONE,
92
-				'will rescan all files of all known users'
93
-			)->addOption(
94
-				'unscanned',
95
-				null,
96
-				InputOption::VALUE_NONE,
97
-				'only scan files which are marked as not fully scanned'
98
-			);
99
-	}
62
+        $this
63
+            ->setName('files:scan')
64
+            ->setDescription('rescan filesystem')
65
+            ->addArgument(
66
+                'user_id',
67
+                InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
68
+                'will rescan all files of the given user(s)'
69
+            )
70
+            ->addOption(
71
+                'path',
72
+                'p',
73
+                InputArgument::OPTIONAL,
74
+                'limit rescan to this path, eg. --path="/alice/files/Music", the user_id is determined by the path and the user_id parameter and --all are ignored'
75
+            )
76
+            ->addOption(
77
+                'quiet',
78
+                'q',
79
+                InputOption::VALUE_NONE,
80
+                'suppress any output'
81
+            )
82
+            ->addOption(
83
+                'verbose',
84
+                '-v|vv|vvv',
85
+                InputOption::VALUE_NONE,
86
+                'verbose the output'
87
+            )
88
+            ->addOption(
89
+                'all',
90
+                null,
91
+                InputOption::VALUE_NONE,
92
+                'will rescan all files of all known users'
93
+            )->addOption(
94
+                'unscanned',
95
+                null,
96
+                InputOption::VALUE_NONE,
97
+                'only scan files which are marked as not fully scanned'
98
+            );
99
+    }
100 100
 
101
-	public function checkScanWarning($fullPath, OutputInterface $output) {
102
-		$normalizedPath = basename(\OC\Files\Filesystem::normalizePath($fullPath));
103
-		$path = basename($fullPath);
101
+    public function checkScanWarning($fullPath, OutputInterface $output) {
102
+        $normalizedPath = basename(\OC\Files\Filesystem::normalizePath($fullPath));
103
+        $path = basename($fullPath);
104 104
 
105
-		if ($normalizedPath !== $path) {
106
-			$output->writeln("\t<error>Entry \"" . $fullPath . '" will not be accessible due to incompatible encoding</error>');
107
-		}
108
-	}
105
+        if ($normalizedPath !== $path) {
106
+            $output->writeln("\t<error>Entry \"" . $fullPath . '" will not be accessible due to incompatible encoding</error>');
107
+        }
108
+    }
109 109
 
110
-	protected function scanFiles($user, $path, $verbose, OutputInterface $output, $backgroundScan = false) {
111
-		$connection = $this->reconnectToDatabase($output);
112
-		$scanner = new \OC\Files\Utils\Scanner($user, $connection, \OC::$server->getLogger());
113
-		# check on each file/folder if there was a user interrupt (ctrl-c) and throw an exception
114
-		# printout and count
115
-		if ($verbose) {
116
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
117
-				$output->writeln("\tFile   <info>$path</info>");
118
-				$this->filesCounter += 1;
119
-				if ($this->hasBeenInterrupted()) {
120
-					throw new \Exception('ctrl-c');
121
-				}
122
-			});
123
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
124
-				$output->writeln("\tFolder <info>$path</info>");
125
-				$this->foldersCounter += 1;
126
-				if ($this->hasBeenInterrupted()) {
127
-					throw new \Exception('ctrl-c');
128
-				}
129
-			});
130
-			$scanner->listen('\OC\Files\Utils\Scanner', 'StorageNotAvailable', function (StorageNotAvailableException $e) use ($output) {
131
-				$output->writeln("Error while scanning, storage not available (" . $e->getMessage() . ")");
132
-			});
133
-		# count only
134
-		} else {
135
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function () use ($output) {
136
-				$this->filesCounter += 1;
137
-				if ($this->hasBeenInterrupted()) {
138
-					throw new \Exception('ctrl-c');
139
-				}
140
-			});
141
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function () use ($output) {
142
-				$this->foldersCounter += 1;
143
-				if ($this->hasBeenInterrupted()) {
144
-					throw new \Exception('ctrl-c');
145
-				}
146
-			});
147
-		}
148
-		$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function($path) use ($output) {
149
-			$this->checkScanWarning($path, $output);
150
-		});
151
-		$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) use ($output) {
152
-			$this->checkScanWarning($path, $output);
153
-		});
110
+    protected function scanFiles($user, $path, $verbose, OutputInterface $output, $backgroundScan = false) {
111
+        $connection = $this->reconnectToDatabase($output);
112
+        $scanner = new \OC\Files\Utils\Scanner($user, $connection, \OC::$server->getLogger());
113
+        # check on each file/folder if there was a user interrupt (ctrl-c) and throw an exception
114
+        # printout and count
115
+        if ($verbose) {
116
+            $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
117
+                $output->writeln("\tFile   <info>$path</info>");
118
+                $this->filesCounter += 1;
119
+                if ($this->hasBeenInterrupted()) {
120
+                    throw new \Exception('ctrl-c');
121
+                }
122
+            });
123
+            $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
124
+                $output->writeln("\tFolder <info>$path</info>");
125
+                $this->foldersCounter += 1;
126
+                if ($this->hasBeenInterrupted()) {
127
+                    throw new \Exception('ctrl-c');
128
+                }
129
+            });
130
+            $scanner->listen('\OC\Files\Utils\Scanner', 'StorageNotAvailable', function (StorageNotAvailableException $e) use ($output) {
131
+                $output->writeln("Error while scanning, storage not available (" . $e->getMessage() . ")");
132
+            });
133
+        # count only
134
+        } else {
135
+            $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function () use ($output) {
136
+                $this->filesCounter += 1;
137
+                if ($this->hasBeenInterrupted()) {
138
+                    throw new \Exception('ctrl-c');
139
+                }
140
+            });
141
+            $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function () use ($output) {
142
+                $this->foldersCounter += 1;
143
+                if ($this->hasBeenInterrupted()) {
144
+                    throw new \Exception('ctrl-c');
145
+                }
146
+            });
147
+        }
148
+        $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function($path) use ($output) {
149
+            $this->checkScanWarning($path, $output);
150
+        });
151
+        $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) use ($output) {
152
+            $this->checkScanWarning($path, $output);
153
+        });
154 154
 
155
-		try {
156
-			if ($backgroundScan) {
157
-				$scanner->backgroundScan($path);
158
-			}else {
159
-				$scanner->scan($path);
160
-			}
161
-		} catch (ForbiddenException $e) {
162
-			$output->writeln("<error>Home storage for user $user not writable</error>");
163
-			$output->writeln("Make sure you're running the scan command only as the user the web server runs as");
164
-		} catch (\Exception $e) {
165
-			if ($e->getMessage() !== 'ctrl-c') {
166
-				$output->writeln('<error>Exception while scanning: ' . $e->getMessage() . "\n" . $e->getTraceAsString() . '</error>');
167
-			}
168
-			return;
169
-		}
170
-	}
155
+        try {
156
+            if ($backgroundScan) {
157
+                $scanner->backgroundScan($path);
158
+            }else {
159
+                $scanner->scan($path);
160
+            }
161
+        } catch (ForbiddenException $e) {
162
+            $output->writeln("<error>Home storage for user $user not writable</error>");
163
+            $output->writeln("Make sure you're running the scan command only as the user the web server runs as");
164
+        } catch (\Exception $e) {
165
+            if ($e->getMessage() !== 'ctrl-c') {
166
+                $output->writeln('<error>Exception while scanning: ' . $e->getMessage() . "\n" . $e->getTraceAsString() . '</error>');
167
+            }
168
+            return;
169
+        }
170
+    }
171 171
 
172 172
 
173
-	protected function execute(InputInterface $input, OutputInterface $output) {
174
-		$inputPath = $input->getOption('path');
175
-		if ($inputPath) {
176
-			$inputPath = '/' . trim($inputPath, '/');
177
-			list (, $user,) = explode('/', $inputPath, 3);
178
-			$users = array($user);
179
-		} else if ($input->getOption('all')) {
180
-			$users = $this->userManager->search('');
181
-		} else {
182
-			$users = $input->getArgument('user_id');
183
-		}
173
+    protected function execute(InputInterface $input, OutputInterface $output) {
174
+        $inputPath = $input->getOption('path');
175
+        if ($inputPath) {
176
+            $inputPath = '/' . trim($inputPath, '/');
177
+            list (, $user,) = explode('/', $inputPath, 3);
178
+            $users = array($user);
179
+        } else if ($input->getOption('all')) {
180
+            $users = $this->userManager->search('');
181
+        } else {
182
+            $users = $input->getArgument('user_id');
183
+        }
184 184
 
185
-		# no messaging level option means: no full printout but statistics
186
-		# $quiet   means no print at all
187
-		# $verbose means full printout including statistics
188
-		# -q	-v	full	stat
189
-		#  0	 0	no	yes
190
-		#  0	 1	yes	yes
191
-		#  1	--	no	no  (quiet overrules verbose)
192
-		$verbose = $input->getOption('verbose');
193
-		$quiet = $input->getOption('quiet');
194
-		# restrict the verbosity level to VERBOSITY_VERBOSE
195
-		if ($output->getVerbosity()>OutputInterface::VERBOSITY_VERBOSE) {
196
-			$output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
197
-		}
198
-		if ($quiet) {
199
-			$verbose = false;
200
-		}
185
+        # no messaging level option means: no full printout but statistics
186
+        # $quiet   means no print at all
187
+        # $verbose means full printout including statistics
188
+        # -q	-v	full	stat
189
+        #  0	 0	no	yes
190
+        #  0	 1	yes	yes
191
+        #  1	--	no	no  (quiet overrules verbose)
192
+        $verbose = $input->getOption('verbose');
193
+        $quiet = $input->getOption('quiet');
194
+        # restrict the verbosity level to VERBOSITY_VERBOSE
195
+        if ($output->getVerbosity()>OutputInterface::VERBOSITY_VERBOSE) {
196
+            $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
197
+        }
198
+        if ($quiet) {
199
+            $verbose = false;
200
+        }
201 201
 
202
-		# check quantity of users to be process and show it on the command line
203
-		$users_total = count($users);
204
-		if ($users_total === 0) {
205
-			$output->writeln("<error>Please specify the user id to scan, \"--all\" to scan for all users or \"--path=...\"</error>");
206
-			return;
207
-		} else {
208
-			if ($users_total > 1) {
209
-				$output->writeln("\nScanning files for $users_total users");
210
-			}
211
-		}
202
+        # check quantity of users to be process and show it on the command line
203
+        $users_total = count($users);
204
+        if ($users_total === 0) {
205
+            $output->writeln("<error>Please specify the user id to scan, \"--all\" to scan for all users or \"--path=...\"</error>");
206
+            return;
207
+        } else {
208
+            if ($users_total > 1) {
209
+                $output->writeln("\nScanning files for $users_total users");
210
+            }
211
+        }
212 212
 
213
-		$this->initTools();
213
+        $this->initTools();
214 214
 
215
-		$user_count = 0;
216
-		foreach ($users as $user) {
217
-			if (is_object($user)) {
218
-				$user = $user->getUID();
219
-			}
220
-			$path = $inputPath ? $inputPath : '/' . $user;
221
-			$user_count += 1;
222
-			if ($this->userManager->userExists($user)) {
223
-				# add an extra line when verbose is set to optical separate users
224
-				if ($verbose) {$output->writeln(""); }
225
-				$output->writeln("Starting scan for user $user_count out of $users_total ($user)");
226
-				# full: printout data if $verbose was set
227
-				$this->scanFiles($user, $path, $verbose, $output, $input->getOption('unscanned'));
228
-			} else {
229
-				$output->writeln("<error>Unknown user $user_count $user</error>");
230
-			}
231
-			# check on each user if there was a user interrupt (ctrl-c) and exit foreach
232
-			if ($this->hasBeenInterrupted()) {
233
-				break;
234
-			}
235
-		}
215
+        $user_count = 0;
216
+        foreach ($users as $user) {
217
+            if (is_object($user)) {
218
+                $user = $user->getUID();
219
+            }
220
+            $path = $inputPath ? $inputPath : '/' . $user;
221
+            $user_count += 1;
222
+            if ($this->userManager->userExists($user)) {
223
+                # add an extra line when verbose is set to optical separate users
224
+                if ($verbose) {$output->writeln(""); }
225
+                $output->writeln("Starting scan for user $user_count out of $users_total ($user)");
226
+                # full: printout data if $verbose was set
227
+                $this->scanFiles($user, $path, $verbose, $output, $input->getOption('unscanned'));
228
+            } else {
229
+                $output->writeln("<error>Unknown user $user_count $user</error>");
230
+            }
231
+            # check on each user if there was a user interrupt (ctrl-c) and exit foreach
232
+            if ($this->hasBeenInterrupted()) {
233
+                break;
234
+            }
235
+        }
236 236
 
237
-		# stat: printout statistics if $quiet was not set
238
-		if (!$quiet) {
239
-			$this->presentStats($output);
240
-		}
241
-	}
237
+        # stat: printout statistics if $quiet was not set
238
+        if (!$quiet) {
239
+            $this->presentStats($output);
240
+        }
241
+    }
242 242
 
243
-	/**
244
-	 * Initialises some useful tools for the Command
245
-	 */
246
-	protected function initTools() {
247
-		// Start the timer
248
-		$this->execTime = -microtime(true);
249
-		// Convert PHP errors to exceptions
250
-		set_error_handler([$this, 'exceptionErrorHandler'], E_ALL);
251
-	}
243
+    /**
244
+     * Initialises some useful tools for the Command
245
+     */
246
+    protected function initTools() {
247
+        // Start the timer
248
+        $this->execTime = -microtime(true);
249
+        // Convert PHP errors to exceptions
250
+        set_error_handler([$this, 'exceptionErrorHandler'], E_ALL);
251
+    }
252 252
 
253
-	/**
254
-	 * Processes PHP errors as exceptions in order to be able to keep track of problems
255
-	 *
256
-	 * @see https://secure.php.net/manual/en/function.set-error-handler.php
257
-	 *
258
-	 * @param int $severity the level of the error raised
259
-	 * @param string $message
260
-	 * @param string $file the filename that the error was raised in
261
-	 * @param int $line the line number the error was raised
262
-	 *
263
-	 * @throws \ErrorException
264
-	 */
265
-	public function exceptionErrorHandler($severity, $message, $file, $line) {
266
-		if (!(error_reporting() & $severity)) {
267
-			// This error code is not included in error_reporting
268
-			return;
269
-		}
270
-		throw new \ErrorException($message, 0, $severity, $file, $line);
271
-	}
253
+    /**
254
+     * Processes PHP errors as exceptions in order to be able to keep track of problems
255
+     *
256
+     * @see https://secure.php.net/manual/en/function.set-error-handler.php
257
+     *
258
+     * @param int $severity the level of the error raised
259
+     * @param string $message
260
+     * @param string $file the filename that the error was raised in
261
+     * @param int $line the line number the error was raised
262
+     *
263
+     * @throws \ErrorException
264
+     */
265
+    public function exceptionErrorHandler($severity, $message, $file, $line) {
266
+        if (!(error_reporting() & $severity)) {
267
+            // This error code is not included in error_reporting
268
+            return;
269
+        }
270
+        throw new \ErrorException($message, 0, $severity, $file, $line);
271
+    }
272 272
 
273
-	/**
274
-	 * @param OutputInterface $output
275
-	 */
276
-	protected function presentStats(OutputInterface $output) {
277
-		// Stop the timer
278
-		$this->execTime += microtime(true);
279
-		$output->writeln("");
273
+    /**
274
+     * @param OutputInterface $output
275
+     */
276
+    protected function presentStats(OutputInterface $output) {
277
+        // Stop the timer
278
+        $this->execTime += microtime(true);
279
+        $output->writeln("");
280 280
 
281
-		$headers = [
282
-			'Folders', 'Files', 'Elapsed time'
283
-		];
281
+        $headers = [
282
+            'Folders', 'Files', 'Elapsed time'
283
+        ];
284 284
 
285
-		$this->showSummary($headers, null, $output);
286
-	}
285
+        $this->showSummary($headers, null, $output);
286
+    }
287 287
 
288
-	/**
289
-	 * Shows a summary of operations
290
-	 *
291
-	 * @param string[] $headers
292
-	 * @param string[] $rows
293
-	 * @param OutputInterface $output
294
-	 */
295
-	protected function showSummary($headers, $rows, OutputInterface $output) {
296
-		$niceDate = $this->formatExecTime();
297
-		if (!$rows) {
298
-			$rows = [
299
-				$this->foldersCounter,
300
-				$this->filesCounter,
301
-				$niceDate,
302
-			];
303
-		}
304
-		$table = new Table($output);
305
-		$table
306
-			->setHeaders($headers)
307
-			->setRows([$rows]);
308
-		$table->render();
309
-	}
288
+    /**
289
+     * Shows a summary of operations
290
+     *
291
+     * @param string[] $headers
292
+     * @param string[] $rows
293
+     * @param OutputInterface $output
294
+     */
295
+    protected function showSummary($headers, $rows, OutputInterface $output) {
296
+        $niceDate = $this->formatExecTime();
297
+        if (!$rows) {
298
+            $rows = [
299
+                $this->foldersCounter,
300
+                $this->filesCounter,
301
+                $niceDate,
302
+            ];
303
+        }
304
+        $table = new Table($output);
305
+        $table
306
+            ->setHeaders($headers)
307
+            ->setRows([$rows]);
308
+        $table->render();
309
+    }
310 310
 
311 311
 
312
-	/**
313
-	 * Formats microtime into a human readable format
314
-	 *
315
-	 * @return string
316
-	 */
317
-	protected function formatExecTime() {
318
-		list($secs, $tens) = explode('.', sprintf("%.1f", ($this->execTime)));
312
+    /**
313
+     * Formats microtime into a human readable format
314
+     *
315
+     * @return string
316
+     */
317
+    protected function formatExecTime() {
318
+        list($secs, $tens) = explode('.', sprintf("%.1f", ($this->execTime)));
319 319
 
320
-		# if you want to have microseconds add this:   . '.' . $tens;
321
-		return date('H:i:s', $secs);
322
-	}
320
+        # if you want to have microseconds add this:   . '.' . $tens;
321
+        return date('H:i:s', $secs);
322
+    }
323 323
 
324
-	/**
325
-	 * @return \OCP\IDBConnection
326
-	 */
327
-	protected function reconnectToDatabase(OutputInterface $output) {
328
-		/** @var Connection | IDBConnection $connection*/
329
-		$connection = \OC::$server->getDatabaseConnection();
330
-		try {
331
-			$connection->close();
332
-		} catch (\Exception $ex) {
333
-			$output->writeln("<info>Error while disconnecting from database: {$ex->getMessage()}</info>");
334
-		}
335
-		while (!$connection->isConnected()) {
336
-			try {
337
-				$connection->connect();
338
-			} catch (\Exception $ex) {
339
-				$output->writeln("<info>Error while re-connecting to database: {$ex->getMessage()}</info>");
340
-				sleep(60);
341
-			}
342
-		}
343
-		return $connection;
344
-	}
324
+    /**
325
+     * @return \OCP\IDBConnection
326
+     */
327
+    protected function reconnectToDatabase(OutputInterface $output) {
328
+        /** @var Connection | IDBConnection $connection*/
329
+        $connection = \OC::$server->getDatabaseConnection();
330
+        try {
331
+            $connection->close();
332
+        } catch (\Exception $ex) {
333
+            $output->writeln("<info>Error while disconnecting from database: {$ex->getMessage()}</info>");
334
+        }
335
+        while (!$connection->isConnected()) {
336
+            try {
337
+                $connection->connect();
338
+            } catch (\Exception $ex) {
339
+                $output->writeln("<info>Error while re-connecting to database: {$ex->getMessage()}</info>");
340
+                sleep(60);
341
+            }
342
+        }
343
+        return $connection;
344
+    }
345 345
 
346 346
 }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
 		$path = basename($fullPath);
104 104
 
105 105
 		if ($normalizedPath !== $path) {
106
-			$output->writeln("\t<error>Entry \"" . $fullPath . '" will not be accessible due to incompatible encoding</error>');
106
+			$output->writeln("\t<error>Entry \"".$fullPath.'" will not be accessible due to incompatible encoding</error>');
107 107
 		}
108 108
 	}
109 109
 
@@ -113,32 +113,32 @@  discard block
 block discarded – undo
113 113
 		# check on each file/folder if there was a user interrupt (ctrl-c) and throw an exception
114 114
 		# printout and count
115 115
 		if ($verbose) {
116
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
116
+			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function($path) use ($output) {
117 117
 				$output->writeln("\tFile   <info>$path</info>");
118 118
 				$this->filesCounter += 1;
119 119
 				if ($this->hasBeenInterrupted()) {
120 120
 					throw new \Exception('ctrl-c');
121 121
 				}
122 122
 			});
123
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
123
+			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) use ($output) {
124 124
 				$output->writeln("\tFolder <info>$path</info>");
125 125
 				$this->foldersCounter += 1;
126 126
 				if ($this->hasBeenInterrupted()) {
127 127
 					throw new \Exception('ctrl-c');
128 128
 				}
129 129
 			});
130
-			$scanner->listen('\OC\Files\Utils\Scanner', 'StorageNotAvailable', function (StorageNotAvailableException $e) use ($output) {
131
-				$output->writeln("Error while scanning, storage not available (" . $e->getMessage() . ")");
130
+			$scanner->listen('\OC\Files\Utils\Scanner', 'StorageNotAvailable', function(StorageNotAvailableException $e) use ($output) {
131
+				$output->writeln("Error while scanning, storage not available (".$e->getMessage().")");
132 132
 			});
133 133
 		# count only
134 134
 		} else {
135
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function () use ($output) {
135
+			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function() use ($output) {
136 136
 				$this->filesCounter += 1;
137 137
 				if ($this->hasBeenInterrupted()) {
138 138
 					throw new \Exception('ctrl-c');
139 139
 				}
140 140
 			});
141
-			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function () use ($output) {
141
+			$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function() use ($output) {
142 142
 				$this->foldersCounter += 1;
143 143
 				if ($this->hasBeenInterrupted()) {
144 144
 					throw new \Exception('ctrl-c');
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
 		try {
156 156
 			if ($backgroundScan) {
157 157
 				$scanner->backgroundScan($path);
158
-			}else {
158
+			} else {
159 159
 				$scanner->scan($path);
160 160
 			}
161 161
 		} catch (ForbiddenException $e) {
@@ -163,7 +163,7 @@  discard block
 block discarded – undo
163 163
 			$output->writeln("Make sure you're running the scan command only as the user the web server runs as");
164 164
 		} catch (\Exception $e) {
165 165
 			if ($e->getMessage() !== 'ctrl-c') {
166
-				$output->writeln('<error>Exception while scanning: ' . $e->getMessage() . "\n" . $e->getTraceAsString() . '</error>');
166
+				$output->writeln('<error>Exception while scanning: '.$e->getMessage()."\n".$e->getTraceAsString().'</error>');
167 167
 			}
168 168
 			return;
169 169
 		}
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
 	protected function execute(InputInterface $input, OutputInterface $output) {
174 174
 		$inputPath = $input->getOption('path');
175 175
 		if ($inputPath) {
176
-			$inputPath = '/' . trim($inputPath, '/');
176
+			$inputPath = '/'.trim($inputPath, '/');
177 177
 			list (, $user,) = explode('/', $inputPath, 3);
178 178
 			$users = array($user);
179 179
 		} else if ($input->getOption('all')) {
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 		$verbose = $input->getOption('verbose');
193 193
 		$quiet = $input->getOption('quiet');
194 194
 		# restrict the verbosity level to VERBOSITY_VERBOSE
195
-		if ($output->getVerbosity()>OutputInterface::VERBOSITY_VERBOSE) {
195
+		if ($output->getVerbosity() > OutputInterface::VERBOSITY_VERBOSE) {
196 196
 			$output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
197 197
 		}
198 198
 		if ($quiet) {
@@ -217,7 +217,7 @@  discard block
 block discarded – undo
217 217
 			if (is_object($user)) {
218 218
 				$user = $user->getUID();
219 219
 			}
220
-			$path = $inputPath ? $inputPath : '/' . $user;
220
+			$path = $inputPath ? $inputPath : '/'.$user;
221 221
 			$user_count += 1;
222 222
 			if ($this->userManager->userExists($user)) {
223 223
 				# add an extra line when verbose is set to optical separate users
Please login to merge, or discard this patch.
Braces   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -155,7 +155,7 @@
 block discarded – undo
155 155
 		try {
156 156
 			if ($backgroundScan) {
157 157
 				$scanner->backgroundScan($path);
158
-			}else {
158
+			} else {
159 159
 				$scanner->scan($path);
160 160
 			}
161 161
 		} catch (ForbiddenException $e) {
Please login to merge, or discard this patch.
apps/files/lib/Capabilities.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -34,29 +34,29 @@
 block discarded – undo
34 34
  * @package OCA\Files
35 35
  */
36 36
 class Capabilities implements ICapability {
37
-	/** @var IConfig */
38
-	protected $config;
37
+    /** @var IConfig */
38
+    protected $config;
39 39
 
40
-	/**
41
-	 * Capabilities constructor.
42
-	 *
43
-	 * @param IConfig $config
44
-	 */
45
-	public function __construct(IConfig $config) {
46
-		$this->config = $config;
47
-	}
40
+    /**
41
+     * Capabilities constructor.
42
+     *
43
+     * @param IConfig $config
44
+     */
45
+    public function __construct(IConfig $config) {
46
+        $this->config = $config;
47
+    }
48 48
 
49
-	/**
50
-	 * Return this classes capabilities
51
-	 *
52
-	 * @return array
53
-	 */
54
-	public function getCapabilities() {
55
-		return [
56
-			'files' => [
57
-				'bigfilechunking' => true,
58
-				'blacklisted_files' => $this->config->getSystemValue('blacklisted_files', ['.htaccess']),
59
-			],
60
-		];
61
-	}
49
+    /**
50
+     * Return this classes capabilities
51
+     *
52
+     * @return array
53
+     */
54
+    public function getCapabilities() {
55
+        return [
56
+            'files' => [
57
+                'bigfilechunking' => true,
58
+                'blacklisted_files' => $this->config->getSystemValue('blacklisted_files', ['.htaccess']),
59
+            ],
60
+        ];
61
+    }
62 62
 }
Please login to merge, or discard this patch.
apps/files/lib/BackgroundJob/CleanupFileLocks.php 2 patches
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -30,29 +30,29 @@
 block discarded – undo
30 30
  */
31 31
 class CleanupFileLocks extends TimedJob {
32 32
 
33
-	/**
34
-	 * Default interval in minutes
35
-	 *
36
-	 * @var int $defaultIntervalMin
37
-	 **/
38
-	protected $defaultIntervalMin = 5;
33
+    /**
34
+     * Default interval in minutes
35
+     *
36
+     * @var int $defaultIntervalMin
37
+     **/
38
+    protected $defaultIntervalMin = 5;
39 39
 
40
-	/**
41
-	 * sets the correct interval for this timed job
42
-	 */
43
-	public function __construct() {
44
-		$this->interval = $this->defaultIntervalMin * 60;
45
-	}
40
+    /**
41
+     * sets the correct interval for this timed job
42
+     */
43
+    public function __construct() {
44
+        $this->interval = $this->defaultIntervalMin * 60;
45
+    }
46 46
 
47
-	/**
48
-	 * Makes the background job do its work
49
-	 *
50
-	 * @param array $argument unused argument
51
-	 */
52
-	public function run($argument) {
53
-		$lockingProvider = \OC::$server->getLockingProvider();
54
-		if($lockingProvider instanceof DBLockingProvider) {
55
-			$lockingProvider->cleanExpiredLocks();
56
-		}
57
-	}
47
+    /**
48
+     * Makes the background job do its work
49
+     *
50
+     * @param array $argument unused argument
51
+     */
52
+    public function run($argument) {
53
+        $lockingProvider = \OC::$server->getLockingProvider();
54
+        if($lockingProvider instanceof DBLockingProvider) {
55
+            $lockingProvider->cleanExpiredLocks();
56
+        }
57
+    }
58 58
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -51,7 +51,7 @@
 block discarded – undo
51 51
 	 */
52 52
 	public function run($argument) {
53 53
 		$lockingProvider = \OC::$server->getLockingProvider();
54
-		if($lockingProvider instanceof DBLockingProvider) {
54
+		if ($lockingProvider instanceof DBLockingProvider) {
55 55
 			$lockingProvider->cleanExpiredLocks();
56 56
 		}
57 57
 	}
Please login to merge, or discard this patch.
apps/files/lib/BackgroundJob/DeleteOrphanedItems.php 2 patches
Indentation   +118 added lines, -118 removed lines patch added patch discarded remove patch
@@ -32,123 +32,123 @@
 block discarded – undo
32 32
  */
33 33
 class DeleteOrphanedItems extends TimedJob {
34 34
 
35
-	const CHUNK_SIZE = 200;
36
-
37
-	/** @var \OCP\IDBConnection */
38
-	protected $connection;
39
-
40
-	/** @var \OCP\ILogger */
41
-	protected $logger;
42
-
43
-	/**
44
-	 * Default interval in minutes
45
-	 *
46
-	 * @var int $defaultIntervalMin
47
-	 **/
48
-	protected $defaultIntervalMin = 60;
49
-
50
-	/**
51
-	 * sets the correct interval for this timed job
52
-	 */
53
-	public function __construct() {
54
-		$this->interval = $this->defaultIntervalMin * 60;
55
-		$this->connection = \OC::$server->getDatabaseConnection();
56
-		$this->logger = \OC::$server->getLogger();
57
-	}
58
-
59
-	/**
60
-	 * Makes the background job do its work
61
-	 *
62
-	 * @param array $argument unused argument
63
-	 */
64
-	public function run($argument) {
65
-		$this->cleanSystemTags();
66
-		$this->cleanUserTags();
67
-		$this->cleanComments();
68
-		$this->cleanCommentMarkers();
69
-	}
70
-
71
-	/**
72
-	 * Deleting orphaned system tag mappings
73
-	 *
74
-	 * @param string $table
75
-	 * @param string $idCol
76
-	 * @param string $typeCol
77
-	 * @return int Number of deleted entries
78
-	 */
79
-	protected function cleanUp($table, $idCol, $typeCol) {
80
-		$deletedEntries = 0;
81
-
82
-		$query = $this->connection->getQueryBuilder();
83
-		$query->select('t1.' . $idCol)
84
-			->from($table, 't1')
85
-			->where($query->expr()->eq($typeCol, $query->expr()->literal('files')))
86
-			->andWhere($query->expr()->isNull('t2.fileid'))
87
-			->leftJoin('t1', 'filecache', 't2', $query->expr()->eq($query->expr()->castColumn('t1.' . $idCol, IQueryBuilder::PARAM_INT), 't2.fileid'))
88
-			->groupBy('t1.' . $idCol)
89
-			->setMaxResults(self::CHUNK_SIZE);
90
-
91
-		$deleteQuery = $this->connection->getQueryBuilder();
92
-		$deleteQuery->delete($table)
93
-			->where($deleteQuery->expr()->eq($idCol, $deleteQuery->createParameter('objectid')));
94
-
95
-		$deletedInLastChunk = self::CHUNK_SIZE;
96
-		while ($deletedInLastChunk === self::CHUNK_SIZE) {
97
-			$result = $query->execute();
98
-			$deletedInLastChunk = 0;
99
-			while ($row = $result->fetch()) {
100
-				$deletedInLastChunk++;
101
-				$deletedEntries += $deleteQuery->setParameter('objectid', (int) $row[$idCol])
102
-					->execute();
103
-			}
104
-			$result->closeCursor();
105
-		}
106
-
107
-		return $deletedEntries;
108
-	}
109
-
110
-	/**
111
-	 * Deleting orphaned system tag mappings
112
-	 *
113
-	 * @return int Number of deleted entries
114
-	 */
115
-	protected function cleanSystemTags() {
116
-		$deletedEntries = $this->cleanUp('systemtag_object_mapping', 'objectid', 'objecttype');
117
-		$this->logger->debug("$deletedEntries orphaned system tag relations deleted", ['app' => 'DeleteOrphanedItems']);
118
-		return $deletedEntries;
119
-	}
120
-
121
-	/**
122
-	 * Deleting orphaned user tag mappings
123
-	 *
124
-	 * @return int Number of deleted entries
125
-	 */
126
-	protected function cleanUserTags() {
127
-		$deletedEntries = $this->cleanUp('vcategory_to_object', 'objid', 'type');
128
-		$this->logger->debug("$deletedEntries orphaned user tag relations deleted", ['app' => 'DeleteOrphanedItems']);
129
-		return $deletedEntries;
130
-	}
131
-
132
-	/**
133
-	 * Deleting orphaned comments
134
-	 *
135
-	 * @return int Number of deleted entries
136
-	 */
137
-	protected function cleanComments() {
138
-		$deletedEntries = $this->cleanUp('comments', 'object_id', 'object_type');
139
-		$this->logger->debug("$deletedEntries orphaned comments deleted", ['app' => 'DeleteOrphanedItems']);
140
-		return $deletedEntries;
141
-	}
142
-
143
-	/**
144
-	 * Deleting orphaned comment read markers
145
-	 *
146
-	 * @return int Number of deleted entries
147
-	 */
148
-	protected function cleanCommentMarkers() {
149
-		$deletedEntries = $this->cleanUp('comments_read_markers', 'object_id', 'object_type');
150
-		$this->logger->debug("$deletedEntries orphaned comment read marks deleted", ['app' => 'DeleteOrphanedItems']);
151
-		return $deletedEntries;
152
-	}
35
+    const CHUNK_SIZE = 200;
36
+
37
+    /** @var \OCP\IDBConnection */
38
+    protected $connection;
39
+
40
+    /** @var \OCP\ILogger */
41
+    protected $logger;
42
+
43
+    /**
44
+     * Default interval in minutes
45
+     *
46
+     * @var int $defaultIntervalMin
47
+     **/
48
+    protected $defaultIntervalMin = 60;
49
+
50
+    /**
51
+     * sets the correct interval for this timed job
52
+     */
53
+    public function __construct() {
54
+        $this->interval = $this->defaultIntervalMin * 60;
55
+        $this->connection = \OC::$server->getDatabaseConnection();
56
+        $this->logger = \OC::$server->getLogger();
57
+    }
58
+
59
+    /**
60
+     * Makes the background job do its work
61
+     *
62
+     * @param array $argument unused argument
63
+     */
64
+    public function run($argument) {
65
+        $this->cleanSystemTags();
66
+        $this->cleanUserTags();
67
+        $this->cleanComments();
68
+        $this->cleanCommentMarkers();
69
+    }
70
+
71
+    /**
72
+     * Deleting orphaned system tag mappings
73
+     *
74
+     * @param string $table
75
+     * @param string $idCol
76
+     * @param string $typeCol
77
+     * @return int Number of deleted entries
78
+     */
79
+    protected function cleanUp($table, $idCol, $typeCol) {
80
+        $deletedEntries = 0;
81
+
82
+        $query = $this->connection->getQueryBuilder();
83
+        $query->select('t1.' . $idCol)
84
+            ->from($table, 't1')
85
+            ->where($query->expr()->eq($typeCol, $query->expr()->literal('files')))
86
+            ->andWhere($query->expr()->isNull('t2.fileid'))
87
+            ->leftJoin('t1', 'filecache', 't2', $query->expr()->eq($query->expr()->castColumn('t1.' . $idCol, IQueryBuilder::PARAM_INT), 't2.fileid'))
88
+            ->groupBy('t1.' . $idCol)
89
+            ->setMaxResults(self::CHUNK_SIZE);
90
+
91
+        $deleteQuery = $this->connection->getQueryBuilder();
92
+        $deleteQuery->delete($table)
93
+            ->where($deleteQuery->expr()->eq($idCol, $deleteQuery->createParameter('objectid')));
94
+
95
+        $deletedInLastChunk = self::CHUNK_SIZE;
96
+        while ($deletedInLastChunk === self::CHUNK_SIZE) {
97
+            $result = $query->execute();
98
+            $deletedInLastChunk = 0;
99
+            while ($row = $result->fetch()) {
100
+                $deletedInLastChunk++;
101
+                $deletedEntries += $deleteQuery->setParameter('objectid', (int) $row[$idCol])
102
+                    ->execute();
103
+            }
104
+            $result->closeCursor();
105
+        }
106
+
107
+        return $deletedEntries;
108
+    }
109
+
110
+    /**
111
+     * Deleting orphaned system tag mappings
112
+     *
113
+     * @return int Number of deleted entries
114
+     */
115
+    protected function cleanSystemTags() {
116
+        $deletedEntries = $this->cleanUp('systemtag_object_mapping', 'objectid', 'objecttype');
117
+        $this->logger->debug("$deletedEntries orphaned system tag relations deleted", ['app' => 'DeleteOrphanedItems']);
118
+        return $deletedEntries;
119
+    }
120
+
121
+    /**
122
+     * Deleting orphaned user tag mappings
123
+     *
124
+     * @return int Number of deleted entries
125
+     */
126
+    protected function cleanUserTags() {
127
+        $deletedEntries = $this->cleanUp('vcategory_to_object', 'objid', 'type');
128
+        $this->logger->debug("$deletedEntries orphaned user tag relations deleted", ['app' => 'DeleteOrphanedItems']);
129
+        return $deletedEntries;
130
+    }
131
+
132
+    /**
133
+     * Deleting orphaned comments
134
+     *
135
+     * @return int Number of deleted entries
136
+     */
137
+    protected function cleanComments() {
138
+        $deletedEntries = $this->cleanUp('comments', 'object_id', 'object_type');
139
+        $this->logger->debug("$deletedEntries orphaned comments deleted", ['app' => 'DeleteOrphanedItems']);
140
+        return $deletedEntries;
141
+    }
142
+
143
+    /**
144
+     * Deleting orphaned comment read markers
145
+     *
146
+     * @return int Number of deleted entries
147
+     */
148
+    protected function cleanCommentMarkers() {
149
+        $deletedEntries = $this->cleanUp('comments_read_markers', 'object_id', 'object_type');
150
+        $this->logger->debug("$deletedEntries orphaned comment read marks deleted", ['app' => 'DeleteOrphanedItems']);
151
+        return $deletedEntries;
152
+    }
153 153
 
154 154
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -80,12 +80,12 @@
 block discarded – undo
80 80
 		$deletedEntries = 0;
81 81
 
82 82
 		$query = $this->connection->getQueryBuilder();
83
-		$query->select('t1.' . $idCol)
83
+		$query->select('t1.'.$idCol)
84 84
 			->from($table, 't1')
85 85
 			->where($query->expr()->eq($typeCol, $query->expr()->literal('files')))
86 86
 			->andWhere($query->expr()->isNull('t2.fileid'))
87
-			->leftJoin('t1', 'filecache', 't2', $query->expr()->eq($query->expr()->castColumn('t1.' . $idCol, IQueryBuilder::PARAM_INT), 't2.fileid'))
88
-			->groupBy('t1.' . $idCol)
87
+			->leftJoin('t1', 'filecache', 't2', $query->expr()->eq($query->expr()->castColumn('t1.'.$idCol, IQueryBuilder::PARAM_INT), 't2.fileid'))
88
+			->groupBy('t1.'.$idCol)
89 89
 			->setMaxResults(self::CHUNK_SIZE);
90 90
 
91 91
 		$deleteQuery = $this->connection->getQueryBuilder();
Please login to merge, or discard this patch.
apps/files/lib/BackgroundJob/ScanFiles.php 1 patch
Indentation   +69 added lines, -69 removed lines patch added patch discarded remove patch
@@ -36,80 +36,80 @@
 block discarded – undo
36 36
  * @package OCA\Files\BackgroundJob
37 37
  */
38 38
 class ScanFiles extends \OC\BackgroundJob\TimedJob {
39
-	/** @var IConfig */
40
-	private $config;
41
-	/** @var IUserManager */
42
-	private $userManager;
43
-	/** @var IDBConnection */
44
-	private $dbConnection;
45
-	/** @var ILogger */
46
-	private $logger;
47
-	/** Amount of users that should get scanned per execution */
48
-	const USERS_PER_SESSION = 500;
39
+    /** @var IConfig */
40
+    private $config;
41
+    /** @var IUserManager */
42
+    private $userManager;
43
+    /** @var IDBConnection */
44
+    private $dbConnection;
45
+    /** @var ILogger */
46
+    private $logger;
47
+    /** Amount of users that should get scanned per execution */
48
+    const USERS_PER_SESSION = 500;
49 49
 
50
-	/**
51
-	 * @param IConfig|null $config
52
-	 * @param IUserManager|null $userManager
53
-	 * @param IDBConnection|null $dbConnection
54
-	 * @param ILogger|null $logger
55
-	 */
56
-	public function __construct(IConfig $config = null,
57
-								IUserManager $userManager = null,
58
-								IDBConnection $dbConnection = null,
59
-								ILogger $logger = null) {
60
-		// Run once per 10 minutes
61
-		$this->setInterval(60 * 10);
50
+    /**
51
+     * @param IConfig|null $config
52
+     * @param IUserManager|null $userManager
53
+     * @param IDBConnection|null $dbConnection
54
+     * @param ILogger|null $logger
55
+     */
56
+    public function __construct(IConfig $config = null,
57
+                                IUserManager $userManager = null,
58
+                                IDBConnection $dbConnection = null,
59
+                                ILogger $logger = null) {
60
+        // Run once per 10 minutes
61
+        $this->setInterval(60 * 10);
62 62
 
63
-		if (is_null($userManager) || is_null($config)) {
64
-			$this->fixDIForJobs();
65
-		} else {
66
-			$this->config = $config;
67
-			$this->userManager = $userManager;
68
-			$this->logger = $logger;
69
-		}
70
-	}
63
+        if (is_null($userManager) || is_null($config)) {
64
+            $this->fixDIForJobs();
65
+        } else {
66
+            $this->config = $config;
67
+            $this->userManager = $userManager;
68
+            $this->logger = $logger;
69
+        }
70
+    }
71 71
 
72
-	protected function fixDIForJobs() {
73
-		$this->config = \OC::$server->getConfig();
74
-		$this->userManager = \OC::$server->getUserManager();
75
-		$this->logger = \OC::$server->getLogger();
76
-	}
72
+    protected function fixDIForJobs() {
73
+        $this->config = \OC::$server->getConfig();
74
+        $this->userManager = \OC::$server->getUserManager();
75
+        $this->logger = \OC::$server->getLogger();
76
+    }
77 77
 
78
-	/**
79
-	 * @param IUser $user
80
-	 */
81
-	protected function runScanner(IUser $user) {
82
-		try {
83
-			$scanner = new Scanner(
84
-					$user->getUID(),
85
-					$this->dbConnection,
86
-					$this->logger
87
-			);
88
-			$scanner->backgroundScan('');
89
-		} catch (\Exception $e) {
90
-			$this->logger->logException($e, ['app' => 'files']);
91
-		}
92
-		\OC_Util::tearDownFS();
93
-	}
78
+    /**
79
+     * @param IUser $user
80
+     */
81
+    protected function runScanner(IUser $user) {
82
+        try {
83
+            $scanner = new Scanner(
84
+                    $user->getUID(),
85
+                    $this->dbConnection,
86
+                    $this->logger
87
+            );
88
+            $scanner->backgroundScan('');
89
+        } catch (\Exception $e) {
90
+            $this->logger->logException($e, ['app' => 'files']);
91
+        }
92
+        \OC_Util::tearDownFS();
93
+    }
94 94
 
95
-	/**
96
-	 * @param $argument
97
-	 * @throws \Exception
98
-	 */
99
-	protected function run($argument) {
100
-		$offset = $this->config->getAppValue('files', 'cronjob_scan_files', 0);
101
-		$users = $this->userManager->search('', self::USERS_PER_SESSION, $offset);
102
-		if (!count($users)) {
103
-			// No users found, reset offset and retry
104
-			$offset = 0;
105
-			$users = $this->userManager->search('', self::USERS_PER_SESSION);
106
-		}
95
+    /**
96
+     * @param $argument
97
+     * @throws \Exception
98
+     */
99
+    protected function run($argument) {
100
+        $offset = $this->config->getAppValue('files', 'cronjob_scan_files', 0);
101
+        $users = $this->userManager->search('', self::USERS_PER_SESSION, $offset);
102
+        if (!count($users)) {
103
+            // No users found, reset offset and retry
104
+            $offset = 0;
105
+            $users = $this->userManager->search('', self::USERS_PER_SESSION);
106
+        }
107 107
 
108
-		$offset += self::USERS_PER_SESSION;
109
-		$this->config->setAppValue('files', 'cronjob_scan_files', $offset);
108
+        $offset += self::USERS_PER_SESSION;
109
+        $this->config->setAppValue('files', 'cronjob_scan_files', $offset);
110 110
 
111
-		foreach ($users as $user) {
112
-			$this->runScanner($user);
113
-		}
114
-	}
111
+        foreach ($users as $user) {
112
+            $this->runScanner($user);
113
+        }
114
+    }
115 115
 }
Please login to merge, or discard this patch.
apps/files/lib/Settings/Admin.php 2 patches
Indentation   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -31,56 +31,56 @@
 block discarded – undo
31 31
 
32 32
 class Admin implements ISettings {
33 33
 
34
-	/** @var IniGetWrapper */
35
-	private $iniWrapper;
34
+    /** @var IniGetWrapper */
35
+    private $iniWrapper;
36 36
 
37
-	/** @var IRequest */
38
-	private $request;
37
+    /** @var IRequest */
38
+    private $request;
39 39
 
40
-	public function __construct(IniGetWrapper $iniWrapper, IRequest $request) {
41
-		$this->iniWrapper = $iniWrapper;
42
-		$this->request = $request;
43
-	}
40
+    public function __construct(IniGetWrapper $iniWrapper, IRequest $request) {
41
+        $this->iniWrapper = $iniWrapper;
42
+        $this->request = $request;
43
+    }
44 44
 
45
-	/**
46
-	 * @return TemplateResponse
47
-	 */
48
-	public function getForm() {
49
-		$htaccessWorking  = (getenv('htaccessWorking') == 'true');
50
-		$htaccessWritable = is_writable(\OC::$SERVERROOT.'/.htaccess');
51
-		$userIniWritable  = is_writable(\OC::$SERVERROOT.'/.user.ini');
45
+    /**
46
+     * @return TemplateResponse
47
+     */
48
+    public function getForm() {
49
+        $htaccessWorking  = (getenv('htaccessWorking') == 'true');
50
+        $htaccessWritable = is_writable(\OC::$SERVERROOT.'/.htaccess');
51
+        $userIniWritable  = is_writable(\OC::$SERVERROOT.'/.user.ini');
52 52
 
53
-		$upload_max_filesize = $this->iniWrapper->getBytes('upload_max_filesize');
54
-		$post_max_size = $this->iniWrapper->getBytes('post_max_size');
55
-		$maxUploadFilesize = Util::humanFileSize(min($upload_max_filesize, $post_max_size));
53
+        $upload_max_filesize = $this->iniWrapper->getBytes('upload_max_filesize');
54
+        $post_max_size = $this->iniWrapper->getBytes('post_max_size');
55
+        $maxUploadFilesize = Util::humanFileSize(min($upload_max_filesize, $post_max_size));
56 56
 
57
-		$parameters = [
58
-			'uploadChangable'              => (($htaccessWorking and $htaccessWritable) or $userIniWritable ),
59
-			'uploadMaxFilesize'            => $maxUploadFilesize,
60
-			// max possible makes only sense on a 32 bit system
61
-			'displayMaxPossibleUploadSize' => PHP_INT_SIZE === 4,
62
-			'maxPossibleUploadSize'        => Util::humanFileSize(PHP_INT_MAX),
63
-		];
57
+        $parameters = [
58
+            'uploadChangable'              => (($htaccessWorking and $htaccessWritable) or $userIniWritable ),
59
+            'uploadMaxFilesize'            => $maxUploadFilesize,
60
+            // max possible makes only sense on a 32 bit system
61
+            'displayMaxPossibleUploadSize' => PHP_INT_SIZE === 4,
62
+            'maxPossibleUploadSize'        => Util::humanFileSize(PHP_INT_MAX),
63
+        ];
64 64
 
65
-		return new TemplateResponse('files', 'admin', $parameters, '');
66
-	}
65
+        return new TemplateResponse('files', 'admin', $parameters, '');
66
+    }
67 67
 
68
-	/**
69
-	 * @return string the section ID, e.g. 'sharing'
70
-	 */
71
-	public function getSection() {
72
-		return 'additional';
73
-	}
68
+    /**
69
+     * @return string the section ID, e.g. 'sharing'
70
+     */
71
+    public function getSection() {
72
+        return 'additional';
73
+    }
74 74
 
75
-	/**
76
-	 * @return int whether the form should be rather on the top or bottom of
77
-	 * the admin section. The forms are arranged in ascending order of the
78
-	 * priority values. It is required to return a value between 0 and 100.
79
-	 *
80
-	 * E.g.: 70
81
-	 */
82
-	public function getPriority() {
83
-		return 5;
84
-	}
75
+    /**
76
+     * @return int whether the form should be rather on the top or bottom of
77
+     * the admin section. The forms are arranged in ascending order of the
78
+     * priority values. It is required to return a value between 0 and 100.
79
+     *
80
+     * E.g.: 70
81
+     */
82
+    public function getPriority() {
83
+        return 5;
84
+    }
85 85
 
86 86
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -55,7 +55,7 @@
 block discarded – undo
55 55
 		$maxUploadFilesize = Util::humanFileSize(min($upload_max_filesize, $post_max_size));
56 56
 
57 57
 		$parameters = [
58
-			'uploadChangable'              => (($htaccessWorking and $htaccessWritable) or $userIniWritable ),
58
+			'uploadChangable'              => (($htaccessWorking and $htaccessWritable) or $userIniWritable),
59 59
 			'uploadMaxFilesize'            => $maxUploadFilesize,
60 60
 			// max possible makes only sense on a 32 bit system
61 61
 			'displayMaxPossibleUploadSize' => PHP_INT_SIZE === 4,
Please login to merge, or discard this patch.
apps/files/download.php 2 patches
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -30,11 +30,11 @@
 block discarded – undo
30 30
 $filename = $_GET["file"];
31 31
 
32 32
 if(!\OC\Files\Filesystem::file_exists($filename)) {
33
-	header("HTTP/1.0 404 Not Found");
34
-	$tmpl = new OCP\Template( '', '404', 'guest' );
35
-	$tmpl->assign('file', $filename);
36
-	$tmpl->printPage();
37
-	exit;
33
+    header("HTTP/1.0 404 Not Found");
34
+    $tmpl = new OCP\Template( '', '404', 'guest' );
35
+    $tmpl->assign('file', $filename);
36
+    $tmpl->printPage();
37
+    exit;
38 38
 }
39 39
 
40 40
 $ftype=\OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType( $filename ));
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -29,15 +29,15 @@  discard block
 block discarded – undo
29 29
 
30 30
 $filename = $_GET["file"];
31 31
 
32
-if(!\OC\Files\Filesystem::file_exists($filename)) {
32
+if (!\OC\Files\Filesystem::file_exists($filename)) {
33 33
 	header("HTTP/1.0 404 Not Found");
34
-	$tmpl = new OCP\Template( '', '404', 'guest' );
34
+	$tmpl = new OCP\Template('', '404', 'guest');
35 35
 	$tmpl->assign('file', $filename);
36 36
 	$tmpl->printPage();
37 37
 	exit;
38 38
 }
39 39
 
40
-$ftype=\OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType( $filename ));
40
+$ftype = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename));
41 41
 
42 42
 header('Content-Type:'.$ftype);
43 43
 OCP\Response::setContentDispositionHeader(basename($filename), 'attachment');
@@ -45,4 +45,4 @@  discard block
 block discarded – undo
45 45
 OCP\Response::setContentLengthHeader(\OC\Files\Filesystem::filesize($filename));
46 46
 
47 47
 OC_Util::obEnd();
48
-\OC\Files\Filesystem::readfile( $filename );
48
+\OC\Files\Filesystem::readfile($filename);
Please login to merge, or discard this patch.