public function pullCommand(string $directory = null, bool $publish = false, bool $database = false, bool $migrate = false, bool $flush = false, bool $dryRun = false, string $configuration = '.platform.app.yaml', string $environment = 'master', bool $yes = false)
    {
        $this->askForUserAgreement($yes, '<info>Are you sure, all local data will be deleted ?</info> (yes|<b>no</b>) ', '<b>platform.sh -> Local</b>');

        $shellConfiguration = $this->shellConfiguration('pull');
        $platformConfiguration = $this->platformConfiguration($configuration);

        if ($database) {
            $this->database($shellConfiguration, $environment, $dryRun);
        }
        if ($migrate) {
            $this->migrate($shellConfiguration, $environment, $dryRun);
        }
        if ($directory) {
            $this->rsync($directory, $shellConfiguration, $platformConfiguration, $environment, $dryRun);
        }
        if ($publish) {
            $this->publish($shellConfiguration, $environment, $dryRun);
        }
        if ($flush) {
            $this->flush($shellConfiguration, $environment, $dryRun);
        }
    }