Files
swift-mirror/test/SourceKit/Inputs/sourcekitd_path_sanitize.py
Daniel Rodríguez Troitiño 84700839a9 [windows] Replace SourceKit cleaning regexes for Python script.
The quoting of the sed commands was creating problems in my Windows
installation. I am unsure if the implementation of sed.exe is different
or the cmd.exe is different.

In order to avoid problems in different machines, replace the piped sed
commands into only one python script. This should be multiplatform and
should execute the same in any of them. It also remove a lot of the
extra quoting and escaping, and avoids 5 processes for only just one.
2019-11-18 16:50:43 -08:00

33 lines
1.3 KiB
Python

#!/usr/bin/env python
# sourcekitd_path_sanitize.py - Cleans up paths from sourcekitd-test output
#
# This source file is part of the Swift.org open source project
#
# Copyright (c) 2014 - 2019 Apple Inc. and the Swift project authors
# Licensed under Apache License v2.0 with Runtime Library Exception
#
# See https://swift.org/LICENSE.txt for license information
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
import re
import sys
SWIFTMODULE_BUNDLE_RE = re.compile(
r'key.filepath: ".*[/\\](.*)\.swiftmodule[/\\].*\.swiftmodule"')
SWIFTMODULE_RE = re.compile(r'key.filepath: ".*[/\\](.*)\.swiftmodule"')
SWIFT_RE = re.compile(r'key.filepath: ".*[/\\](.*)\.swift"')
PCM_RE = re.compile(r'key.filepath: ".*[/\\](.*)-[0-9A-Z]*\.pcm"')
HEADER_RE = re.compile(r' file=\\".*[/\\](.*)\.h\\"')
try:
for line in sys.stdin.readlines():
line = re.sub(SWIFTMODULE_BUNDLE_RE,
r'key.filepath: \1.swiftmodule', line)
line = re.sub(SWIFTMODULE_RE, r'key.filepath: \1.swiftmodule', line)
line = re.sub(SWIFT_RE, r'key.filepath: \1.swift', line)
line = re.sub(PCM_RE, r'key.filepath: \1.pcm', line)
line = re.sub(HEADER_RE, r' file=\1.h', line)
sys.stdout.write(line)
except KeyboardInterrupt:
sys.stdout.flush()