File: generate-uids.py

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (49 lines) | stat: -rwxr-xr-x 1,106 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python3

import argparse
from pathlib import Path
import subprocess

_DESCRIPTION = """
Generate the Sources/SourceKitD/sourcekit_uids.swift from UIDs.py in the main Swift
repository.
Requires swift to be checked out next to the stress tester like this:
  workspace/
    swift/
    sourcekit-lsp/
"""

def parse_args():
  """
  Only used to display the help message for now/
  """
  parser = argparse.ArgumentParser(
    formatter_class=argparse.RawDescriptionHelpFormatter,
    description=_DESCRIPTION
  )

  return parser.parse_args()

def generate_uids_file():
  package_dir = Path(__file__).parent.parent
  workspace_dir = package_dir.parent
  swift_dir = workspace_dir / "swift"
  gyb_exec = swift_dir / "utils" / "gyb"


  swift_source_kit_sources_dir = package_dir / "Sources" / "SourceKitD"

  subprocess.call([
    gyb_exec,
    swift_source_kit_sources_dir / "sourcekitd_uids.swift.gyb",
    "--line-directive=",
    "-o", swift_source_kit_sources_dir / "sourcekitd_uids.swift",
  ])

def main():
  args = parse_args()
  generate_uids_file()


if __name__ == "__main__":
  main()