public static function processOsSpecificTemplate($os, $template, $override = false, $mode = 0644)
    {

        // prepare the target filename
        $targetFile = Setup::prepareOsSpecificPath($template);

        // query whether we've to override the file
        if ($override === false && is_file($targetFile) === true) {
            return;
        }

        // prepare the target directory
        Setup::prepareDirectory($template);

        // process the template and store the result in the passed file
        ob_start();
        include Setup::prepareOsSpecificPath(sprintf('resources/templates/os-specific/%s/%s.phtml', $os, $template));
        file_put_contents($targetFile, ob_get_clean());

        // set the correct mode for the file
        Setup::changeFilePermissions($template, $mode);
    }