skeeks\cms\console\controllers\InitController::copyFile PHP Method

copyFile() public method

public copyFile ( $root, $source, $target, &$all, $params )
    function copyFile($root, $source, $target, &$all, $params)
    {
        if (!is_file($root . '/' . $source)) {
            echo "       skip {$target} ({$source} not exist)\n";
            return true;
        }
        if (is_file($root . '/' . $target)) {
            if (file_get_contents($root . '/' . $source) === file_get_contents($root . '/' . $target)) {
                echo "  unchanged {$target}\n";
                return true;
            }
            if ($all) {
                echo "  overwrite {$target}\n";
            } else {
                echo "      exist {$target}\n";
                echo "            ...overwrite? [Yes|No|All|Quit] ";
                $answer = !empty($params['overwrite']) ? $params['overwrite'] : trim(fgets(STDIN));
                if (!strncasecmp($answer, 'q', 1)) {
                    return false;
                } else {
                    if (!strncasecmp($answer, 'y', 1)) {
                        echo "  overwrite {$target}\n";
                    } else {
                        if (!strncasecmp($answer, 'a', 1)) {
                            echo "  overwrite {$target}\n";
                            $all = true;
                        } else {
                            echo "       skip {$target}\n";
                            return true;
                        }
                    }
                }
            }
            file_put_contents($root . '/' . $target, file_get_contents($root . '/' . $source));
            return true;
        }
        echo "   generate {$target}\n";
        @mkdir(dirname($root . '/' . $target), 0777, true);
        file_put_contents($root . '/' . $target, file_get_contents($root . '/' . $source));
        return true;
    }