public function refreezeCommand(string $packageKey = 'all')
    {
        if (!$this->bootstrap->getContext()->isDevelopment()) {
            $this->outputLine('Package freezing is only supported in Development context.');
            $this->quit(3);
        }

        $packagesToRefreeze = [];

        if ($packageKey === 'all') {
            foreach (array_keys($this->packageManager->getAvailablePackages()) as $packageKey) {
                if ($this->packageManager->isPackageFrozen($packageKey)) {
                    $packagesToRefreeze[] = $packageKey;
                }
            }
            if ($packagesToRefreeze === []) {
                $this->outputLine('Nothing to do, no packages were frozen.');
                $this->quit(0);
            }
        } else {
            if ($packageKey === null) {
                $this->outputLine('You must specify a package to refreeze.');
                $this->quit(1);
            }

            if (!$this->packageManager->isPackageAvailable($packageKey)) {
                $this->outputLine('Package "%s" is not available.', [$packageKey]);
                $this->quit(2);
            }
            if (!$this->packageManager->isPackageFrozen($packageKey)) {
                $this->outputLine('Package "%s" was not frozen.', [$packageKey]);
                $this->quit(0);
            }
            $packagesToRefreeze = [$packageKey];
        }

        foreach ($packagesToRefreeze as $packageKey) {
            $this->packageManager->refreezePackage($packageKey);
            $this->outputLine('Refroze package "%s".', [$packageKey]);
        }

        Scripts::executeCommand('neos.flow:cache:flush', $this->settings, false);
        $this->sendAndExit(0);
    }