public function install()
	{
		$configuration = $this->arguments->getOpt(3, 'production');

		$args = [];

		switch ($configuration)
		{
			case 'development':
			case 'staging':
				$args[] = '--prefer-source';
				break;

			case 'production':
			default:
				$args[] = '--no-dev';
				break;
		}

		// Composer install
		if ($this->output->getMode() != 'minimal')
		{
			$this->output->addString('Installing any missing libraries from composer...', 'info');
		}

		$cmd = 'php ' . PATH_CORE . DS . 'bin' . DS . 'composer --working-dir=' . PATH_CORE . ' install ' . implode(' ', $args) . ' 2>&1';
		exec($cmd, $output, $status);

		// Composer install
		if ($this->output->getMode() != 'minimal')
		{
			if ($status === 0)
			{
				$this->output->addLine('complete', 'success');
			}
			else
			{
				$this->output->error('failed');
			}
		}
		else
		{
			if ($status !== 0)
			{
				$this->output->error('Failed to update package repository!');
			}
		}

		if ($configuration == 'development' || $configuration == 'staging')
		{
			$this->configure();
		}

		// Composer install
		if ($this->output->getMode() != 'minimal')
		{
			$this->output->addLine('Installation complete!', 'success');
		}
	}