Skip to main content
Glama
make_swift_comp_db.py1.73 kB
#!/usr/bin/env python3 # Copyright (c) Meta Platforms, Inc. and affiliates. # # This source code is licensed under both the MIT license found in the # LICENSE-MIT file in the root directory of this source tree and the Apache # License, Version 2.0 found in the LICENSE-APACHE file in the root directory # of this source tree. """ Utility to create Swift's compilation DBs $ make_swift_comp_db.py gen --output=entry.json foo.swift -- -I /path/ -Xcc -fno-implicit-modules """ # pyre-unsafe import argparse import json import shlex import sys def gen(args): with open(args.project_root_file, "r") as project_root_file: project_root = project_root_file.read().replace("\n", "") entry = {} entry["files"] = list(args.files) entry["directory"] = project_root arguments = [] for arg in args.arguments: if arg.startswith("@"): with open(arg[1:]) as argsfile: for line in argsfile: # The argsfile's arguments are separated by newlines; we # don't want those included in the argument list. arguments.append(" ".join(shlex.split(line))) else: arguments.append(arg) entry["arguments"] = arguments json.dump([entry], args.output, indent=2) args.output.close() def main(argv): parser = argparse.ArgumentParser() parser.add_argument("--output", type=argparse.FileType("w"), default=sys.stdout) parser.add_argument("--files", nargs="*") # A path to a file that contains project root parser.add_argument("--project-root-file") parser.add_argument("arguments", nargs="*") args = parser.parse_args(argv[1:]) gen(args) sys.exit(main(sys.argv))

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server