protected function optionOrConfigValue(InputInterface $input, $config, $optionName, $configName = null)
    {
        $optionNameRaw = $this->normalizeConfigArrayPath($optionName);
        if ($input->hasParameterOption('--' . $optionNameRaw)) {
            return $this->getOptionWithTypeCast($input, $optionName);
        }
        if (!isset($configName)) {
            $configName = $optionNameRaw;
        }

        $configValue = ArrayHelper::getValue($config, $configName, null);

        return isset($configValue) ? $configValue : $input->getOption($optionName);
    }