| | |
| | |
|
| | | // Now delete an existing folder (affects install and removal in the same way)
|
| | | @chdir($this->local_installpath);
|
| | | if(file_exists($this->local_installpath)) exec("rm -Rf ".escapeshellarg($this->local_installpath).'*');
|
| | | else mkdir($this->local_installpath, 0777, true);
|
| | | if(file_exists($this->local_installpath)){
|
| | | // make sure we don't delete error and stats folders
|
| | | if($this->local_installpath == $this->document_root.'/'){
|
| | | if(is_dir($this->document_root)){
|
| | | $files = array_diff(scandir($this->document_root), array('.','..','error','stats'));
|
| | | foreach($files as $file){
|
| | | if(is_dir($this->document_root.'/'.$file)){
|
| | | $app->file->removeDirectory($this->document_root.'/'.$file);
|
| | | } else {
|
| | | @unlink($this->document_root.'/'.$file);
|
| | | }
|
| | | }
|
| | | } else {
|
| | | @unlink($this->document_root);
|
| | | mkdir($this->document_root, 0777, true);
|
| | | }
|
| | | } else {
|
| | | exec("rm -Rf ".escapeshellarg($this->local_installpath).'*');
|
| | | }
|
| | | } else {
|
| | | mkdir($this->local_installpath, 0777, true);
|
| | | }
|
| | |
|
| | | if($this->handle_type == 'install')
|
| | | {
|
| | |
| | | $this->file_owner_user = $owner_res['system_user'];
|
| | | $this->file_owner_group = $owner_res['system_group'];
|
| | | exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
|
| | | |
| | | //* Chown stats directory back
|
| | | if(is_dir($this->local_installpath.'stats')) {
|
| | | exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats'));
|
| | | }
|
| | | }
|
| | | }
|
| | | catch(Exception $e)
|
| | |
| | | {
|
| | | // The install succeeded, chown newly created files too
|
| | | exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
|
| | | |
| | | //* Chown stats directory back
|
| | | if(is_dir($this->local_installpath.'stats')) {
|
| | | exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats'));
|
| | | }
|
| | |
|
| | | $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_SUCCESS.'"
|
| | | WHERE id = "'.$app->db->quote($task['instance_id']).'";');
|