| *␊ |
| * @return array Associative array with the size of each element␊ |
| */␊ |
| function IDF_Views_Admin_getForgeSize()␊ |
| function IDF_Views_Admin_getForgeSize($force=false)␊ |
| {␊ |
| $conf = new IDF_Gconf();␊ |
| $conf->setModel((object) array('_model'=>'IDF_Forge', 'id'=> 1));␊ |
| $res = array();␊ |
| $res['repositories'] = 0;␊ |
| foreach (Pluf::factory('IDF_Project')->getList() as $prj) {␊ |
| $size = $prj->getRepositorySize();␊ |
| $size = $prj->getRepositorySize($force);␊ |
| if ($size != -1) {␊ |
| $res['repositories'] += $size;␊ |
| }␊ |
| }␊ |
| $cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '␊ |
| .escapeshellarg(Pluf::f('upload_path'));␊ |
| $out = explode(' ', shell_exec($cmd), 2);␊ |
| $res['downloads'] = $out[0]*1024;␊ |
| $cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '␊ |
| .escapeshellarg(Pluf::f('upload_issue_path'));␊ |
| $out = explode(' ', shell_exec($cmd), 2);␊ |
| $res['attachments'] = $out[0]*1024;␊ |
| $res['database'] = IDF_Views_Admin_getForgeDbSize();␊ |
| $last_eval = $conf->getVal('downloads_size_check_date', 0);␊ |
| if (!$force and $last_eval > time()-172800) {␊ |
| $res['downloads'] = $conf->getVal('downloads_size', 0);␊ |
| } else {␊ |
| $conf->setVal('downloads_size_check_date', time());␊ |
| $cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '␊ |
| .escapeshellarg(Pluf::f('upload_path'));␊ |
| $out = explode(' ', shell_exec($cmd), 2);␊ |
| $res['downloads'] = $out[0]*1024;␊ |
| $conf->setVal('downloads_size', $res['downloads']);␊ |
| }␊ |
| $last_eval = $conf->getVal('attachments_size_check_date', 0);␊ |
| if (!$force and $last_eval > time()-172800) {␊ |
| $res['attachments'] = $conf->getVal('attachments_size', 0);␊ |
| } else {␊ |
| $conf->setVal('attachments_size_check_date', time());␊ |
| $cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '␊ |
| .escapeshellarg(Pluf::f('upload_path'));␊ |
| $out = explode(' ', shell_exec($cmd), 2);␊ |
| $res['attachments'] = $out[0]*1024;␊ |
| $conf->setVal('attachments_size', $res['attachments']);␊ |
| }␊ |
| $last_eval = $conf->getVal('database_size_check_date', 0);␊ |
| if (!$force and $last_eval > time()-172800) {␊ |
| $res['database'] = $conf->getVal('database_size', 0);␊ |
| } else {␊ |
| $conf->setVal('database_size_check_date', time());␊ |
| $res['database'] = IDF_Views_Admin_getForgeDbSize();␊ |
| $conf->setVal('database_size', $res['database']);␊ |
| }␊ |
| $res['total'] = $res['repositories'] + $res['downloads'] + $res['attachments'] + $res['database'];␊ |
| return $res;␊ |
| }␊ |