summaryrefslogtreecommitdiffstats
path: root/apps/files/ajax/scan.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/ajax/scan.php')
-rw-r--r--apps/files/ajax/scan.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/apps/files/ajax/scan.php b/apps/files/ajax/scan.php
new file mode 100644
index 00000000000..db09b7d5c64
--- /dev/null
+++ b/apps/files/ajax/scan.php
@@ -0,0 +1,38 @@
+<?php
+
+require_once '../../lib/base.php';
+
+set_time_limit(0);//scanning can take ages
+
+$force=isset($_GET['force']) and $_GET['force']=='true';
+$checkOnly=isset($_GET['checkonly']) and $_GET['checkonly']=='true';
+
+if(!$checkOnly){
+ $eventSource=new OC_EventSource();
+}
+
+
+//create the file cache if necesary
+if($force or !OC_FileCache::inCache('')){
+ if(!$checkOnly){
+ OC_DB::beginTransaction();
+ OC_FileCache::scan('',$eventSource);
+ OC_FileCache::clean();
+ OC_DB::commit();
+ $eventSource->send('success',true);
+ }else{
+ OC_JSON::success(array('data'=>array('done'=>true)));
+ exit;
+ }
+}else{
+ if($checkOnly){
+ OC_JSON::success(array('data'=>array('done'=>false)));
+ exit;
+ }
+ if(isset($eventSource)){
+ $eventSource->send('success',false);
+ }else{
+ exit;
+ }
+}
+$eventSource->close(); \ No newline at end of file