<?php

//////////////////////////////////////////////////////////////
//===========================================================
// clone.php
//===========================================================
// SOFTACULOUS 
// Version : 4.2.8
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Alons
// Date:       10th Jan 2009
// Time:       21:00 hrs
// Site:       http://www.softaculous.com/ (SOFTACULOUS)
// ----------------------------------------------------------
// Please Read the Terms of use at http://www.softaculous.com
// ----------------------------------------------------------
//===========================================================
// (c)Softaculous Inc.
//===========================================================
//////////////////////////////////////////////////////////////

if(!defined('SOFTACULOUS')){

	die('Hacking Attempt');

}

//The Install process
function __clone(){

global $__settings, $error, $software, $globals, $replace_data, $source_data;
	
	//Do we meet the Minimum software requirements
	__requirements();
	
	if(!empty($error)){
		return false;
	}
	
	$temp = parse_url($source_data['softurl']);
	$source_data['relativeurl'] = $temp['path'];
	
	$temp = parse_url($__settings['softurl']);
	$__settings['relativeurl'] = $temp['path'];
	
	$__settings['api_token'] = __randstr(80);
	
	// .env
	$file = sfile($__settings['softpath'].'/.env');
	
	if(empty($file)){
		$error[] = 'Could not read the config file to get the APP_KEY.';
		return false;
	}
	
	soft_preg_replace('/APP_KEY=(.*?)\n/is', $file, $APP_KEY, 1);
	
	$replace_data[$APP_KEY] = 'base64:'.base64_encode(md5(microtime()));
	
	soft_preg_replace('/DB_PREFIX=(.*?)\n/is', $file, $__settings['dbprefix'], 1);
	
	sclone_replace($replace_data, $__settings['softpath'].'/.env', true);
	
	//config.php
	sclone_replace($replace_data, $__settings['softpath'].'/bootstrap/cache/config.php', true);
	
	//sql
	$query = "UPDATE `".$__settings['dbprefix']."admins` SET `api_token`='".$__settings['api_token']."' WHERE `id` = 1;";
	sdb_query($query, $__settings['softdbhost'], $__settings['softdbuser'], $__settings['softdbpass'], $__settings['softdb']);
	
	if(sfile_exists($__settings['softpath'].'/.htaccess')){
	
		// If the installation is on root domain we need to change the below relative URL
		if(is_dom_root($source_data['softpath'])){
			
			$replace_data['^/$'] = '^'.$__settings['relativeurl'].'/$';
			
		}elseif(is_dom_root($__settings['softpath'])){
			
			$replace_data['^'.$source_data['relativeurl'].'/$'] = '^/$';
			
		}
			
		sclone_replace($replace_data, $__settings['softpath'].'/.htaccess', true);		
	}
	
	if($globals['os'] != 'windows'){
		
		srm($__settings['softpath'].'/public/storage');
		//srm($__settings['softpath'].'/vendor/bin/upgrade-carbon');
		srm($__settings['softpath'].'/vendor/bin/doctrine-dbal');
		srm($__settings['softpath'].'/vendor/bin/php-parse');
		srm($__settings['softpath'].'/vendor/bin/var-dump-server');
		srm($__settings['softpath'].'/vendor/bin/psysh');
		srm($__settings['softpath'].'/vendor/bin/phpunit');
		srm($__settings['softpath'].'/vendor/bin/commonmark');
		srm($__settings['softpath'].'/vendor/bin/codecept');
		srm($__settings['softpath'].'/vendor/bin/carbon');
		srm($__settings['softpath'].'/bin/codecept');
		
		symlink($__settings['softpath'].'/storage/app/public', $__settings['softpath'].'/public/storage');
		//symlink($__settings['softpath'].'/vendor/nesbot/carbon/bin/upgrade-carbon', $__settings['softpath'].'/vendor/bin/upgrade-carbon');
		symlink($__settings['softpath'].'/vendor/doctrine/dbal/bin/doctrine-dbal', $__settings['softpath'].'/vendor/bin/doctrine-dbal');
		symlink($__settings['softpath'].'/vendor/nikic/php-parser/bin/php-parse', $__settings['softpath'].'/vendor/bin/php-parse');
		symlink($__settings['softpath'].'/vendor/symfony/var-dumper/Resources/bin/var-dump-server', $__settings['softpath'].'/vendor/bin/var-dump-server');
		symlink($__settings['softpath'].'/vendor/psy/psysh/bin/psysh', $__settings['softpath'].'/vendor/bin/psysh');
		symlink($__settings['softpath'].'/vendor/phpunit/phpunit/phpunit', $__settings['softpath'].'/vendor/bin/phpunit');
		symlink($__settings['softpath'].'/vendor/league/commonmark/bin/commonmark', $__settings['softpath'].'/vendor/bin/commonmark');
		symlink($__settings['softpath'].'/vendor/codeception/codeception/codecept', $__settings['softpath'].'/vendor/bin/codecept');
		symlink($__settings['softpath'].'/vendor/nesbot/carbon/bin/carbon', $__settings['softpath'].'/vendor/bin/carbon');
		symlink($__settings['softpath'].'/vendor/bin/codecept', $__settings['softpath'].'/bin/codecept');
	}
	
	//Remove the contents of sessions directory
	@scopy($__settings['softpath'].'/storage/framework/sessions/.gitignore', $__settings['softpath'].'/storage/framework/soft.gitignore');
	srm($__settings['softpath'].'/storage/framework/sessions/');
	smkdir($__settings['softpath'].'/storage/framework/sessions/', $globals['odc']);
	@scopy($__settings['softpath'].'/storage/framework/soft.gitignore', $__settings['softpath'].'/storage/framework/sessions/.gitignore');
	srm($__settings['softpath'].'/storage/framework/soft.gitignore');
	
	// CHMOD some files
	@schmod($__settings['softpath'].'/resources/views/vendor/', $globals['odc'], 1);
	@schmod($__settings['softpath'].'/storage/', $globals['odc'], 1);
	@schmod($__settings['softpath'].'/config/', $globals['odc'], 1);
	@schmod($__settings['softpath'].'/bootstrap/cache/', $globals['odc'], 1);
}

//Check whether the Minimum Software configuration matches
function __requirements(){

global $__settings, $error, $software;
	
	return true;

}

function __randstr($length){
	
	$randstr = "";	
	for($i = 0; $i < $length; $i++){	
		$randnum = mt_rand(0,61);		
		if($randnum < 10){		
			$randstr .= chr($randnum+48);			
		}elseif($randnum < 36){		
			$randstr .= chr($randnum+55);			
		}else{		
			$randstr .= chr($randnum+61);			
		}		
	}	
	return $randstr;
}

?>