int main()

in src/ClazyStandaloneMain.cpp [156:217]


int main(int argc, const char **argv)
{
    for (int i = 1; i < argc; i++) {
        if (strcmp(argv[i], "--version") == 0) {
            std::cout << "clazy version " << CLAZY_VERSION << "\n";
            break;
        }
    }

    auto expectedParser = CommonOptionsParser::create(argc, argv, s_clazyCategory, cl::ZeroOrMore);
    if (!expectedParser) {
        llvm::errs() << expectedParser.takeError();
        return 1;
    }

    auto &optionsParser = expectedParser.get();
    // llvm::errs() << optionsParser.getSourcePathList().size() << "\n";

    if (s_supportedChecks.getValue()) {
        std::cout << SUPPORTED_CHECKS_JSON_STR;
        return 0;
    }

    if (s_listEnabledChecks.getValue()) {
        std::string checksFromArgs = s_checks.getValue();
        std::vector<std::string> checks = {checksFromArgs.empty() ? "level1" : checksFromArgs};
        const RegisteredCheck::List enabledChecks = CheckManager::instance()->requestedChecks(checks);

        if (!enabledChecks.empty()) {
            llvm::outs() << "Enabled checks:";
            for (const auto &check : enabledChecks) {
                llvm::outs() << "\n    " << check.name;
            }
            llvm::outs() << "\n";
        }

        return 0;
    }

    llvm::IntrusiveRefCntPtr<vfs::OverlayFileSystem> fs(new vfs::OverlayFileSystem(vfs::getRealFileSystem()));
    const std::string &overlayFile = s_vfsoverlay.getValue();
    if (!s_vfsoverlay.getValue().empty()) {
        llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> buffer = fs->getBufferForFile(overlayFile);
        if (!buffer) {
            llvm::errs() << "Can't load virtual filesystem overlay file '" << overlayFile << "': " << buffer.getError().message() << ".\n";
            return 0;
        }

        IntrusiveRefCntPtr<vfs::FileSystem> vfso = vfs::getVFSFromYAML(std::move(buffer.get()),
                                                                       /*DiagHandler*/ nullptr,
                                                                       overlayFile);
        if (!vfso) {
            llvm::errs() << "Error: invalid virtual filesystem overlay file '" << overlayFile << "'.\n";
            return 0;
        }
        fs->pushOverlay(vfso);
    }

    ClangTool tool(optionsParser.getCompilations(), optionsParser.getSourcePathList(), std::make_shared<PCHContainerOperations>(), fs);

    return tool.run(new ClazyToolActionFactory(optionsParser.getSourcePathList()));
}