Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Verified Commit 26593fe8 authored by Nivesh Krishna's avatar Nivesh Krishna
Browse files

copy using shell

parent f32ec52c
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ use OCA\EcloudAccounts\Listeners\UserChangedListener;
use OCA\EcloudAccounts\Listeners\UserAddedToBetaGroupListener;
use OCP\Group\Events\UserAddedEvent;


class Application extends App implements IBootstrap {
	public const APP_ID = 'ecloud-accounts';

+14 −26
Original line number Diff line number Diff line
@@ -13,9 +13,7 @@ use OCP\IConfig;
class UserAddedToBetaGroupListener implements IEventListener {
	private $config;

	public function __construct(
		IConfig $config
	) {
	public function __construct(IConfig $config) {
		$this->config = $config;
	}

@@ -29,7 +27,7 @@ class UserAddedToBetaGroupListener implements IEventListener {

		$betaGroup = $this->config->getSystemValue("beta_group_name");

		if ($group->GID() !== $betaGroup) {
		if ($group->getGID() !== $betaGroup) {
			return;
		}

@@ -39,27 +37,17 @@ class UserAddedToBetaGroupListener implements IEventListener {
	private function migrateRainloopData(IUser $user): void {
		$username = $user->getUID();
		$dir_data = substr($username, 0, 2);
		$dir = \rtrim(\trim(\OC::$server->getSystemConfig()->getValue('datadirectory', '')), '\\/');
		$dir_snappy = $dir . '/appdata_snappymail/';
		$dir_rainloop = $dir . '/rainloop-storage/_data_/_default_/storage/cfg/' . $dir_data;
		$iterator = new \RecursiveIteratorIterator(
			new \RecursiveDirectoryIterator($dir_rainloop, \RecursiveDirectoryIterator::SKIP_DOTS),
			\RecursiveIteratorIterator::SELF_FIRST
		);
		foreach ($iterator as $item) {
			$target = $dir_snappy . $iterator->getSubPathname();
			if (\preg_match('@/plugins/([^/])@', $target, $match)) {
				$rainloop_plugins[$match[1]] = $match[1];
			} elseif (!\strpos($target, '/cache/')) {
				if ($item->isDir()) {
					\is_dir($target) || \mkdir($target, 0755, true);
				} elseif (\file_exists($target)) {
					$result[] = "skipped: {$target}";
				} else {
					\copy($item, $target);
					$result[] = "copied : {$target}";
				}
			}
		$email = $user->getEMailAddress();
		$dir = rtrim(trim($this->config->getSystemValue('datadirectory', '')), '\\/');
		$dir_snappy = $dir . '/appdata_snappymail/_data_/_default_/storage/cfg/' . $dir_data . "/$email/";
		$dir_rainloop = $dir . '/rainloop-storage/_data_/_default_/storage/cfg/' . $dir_data . "/$email";
		
		if (file_exists($dir_snappy)) {
			\OC::$server->getLogger()->debug("$dir_snappy folder already exists");
			return;
		}
		mkdir($dir_snappy, 0755, true);
		shell_exec("cp -ar $dir_rainloop/* $dir_snappy");
		return;
	}
}