userManager = $userManager; $this->service = $service; } protected function configure() { $this ->setName('dav:migrate-calendars') ->setDescription('Migrate calendars from the calendar app to core') ->addArgument('user', InputArgument::OPTIONAL, 'User for whom all calendars will be migrated'); } protected function execute(InputInterface $input, OutputInterface $output) { $this->service->setup(); if ($input->hasArgument('user')) { $user = $input->getArgument('user'); if (!$this->userManager->userExists($user)) { throw new \InvalidArgumentException("User <$user> in unknown."); } $output->writeln("Start migration for $user"); $this->service->migrateForUser($user); return; } $output->writeln("Start migration of all known users ..."); $p = new ProgressBar($output); $p->start(); $this->userManager->callForAllUsers(function($user) use ($p) { $p->advance(); /** @var IUser $user */ $this->service->migrateForUser($user->getUID()); }); $p->finish(); $output->writeln(''); } }