public static function dumpToFile(Config $config, $type)
    {
        if ($type === Config::CONFIG_LOCAL) {
            $filename = $config->get('local_config');

            if (null === $filename) {
                throw new \RuntimeException('Local configuration is not loaded and therefore it cannot be dumped.');
            }
        } elseif ($type === Config::CONFIG_SYSTEM) {
            $filename = $config->get('home_config');
        } else {
            throw new \InvalidArgumentException(
                sprintf(
                    'Config slot "%s" is not valid for dumping to a file "%s", use either: '.
                    'Config::CONFIG_SYSTEM or Config::CONFIG_LOCAL.',
                    $type
                )
            );
        }

        // Testing compatibility, write directly as there is no risk of problems
        if ('vfs://' === substr($filename, 0, 6)) {
            file_put_contents($filename, Yaml::dump($config->toArray($type)));
        } else {
            self::getFilesystem()->dumpFile(
                $filename,
                "# Gush configuration file, any comments will be lost.\n".Yaml::dump($config->toArray($type), 2)
            );
        }

        return $filename;
    }