35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import re
|
|
|
|
from aides_spec.replacers.arch_replacer import ArchReplacer
|
|
from aides_spec.replacers.base import BaseReplacer
|
|
|
|
|
|
class SourcesReplacer(BaseReplacer):
|
|
SOURCE_PATTERN = r"^source(?:_(x86_64|i686|armv7h|aarch64))?$"
|
|
|
|
def process(self):
|
|
root_node = self.tree.root_node
|
|
|
|
def find_replacements(node):
|
|
if node.type == "variable_name":
|
|
var_name = self._node_text(node)
|
|
re_match = re.match(self.SOURCE_PATTERN, var_name)
|
|
|
|
if re_match:
|
|
arch = re_match.group(1)
|
|
self.replaces.append(
|
|
{
|
|
"node": node,
|
|
"content": (
|
|
f"sources_{ArchReplacer.ARCH_MAPPING[arch]}"
|
|
if arch
|
|
else "sources"
|
|
),
|
|
}
|
|
)
|
|
|
|
for child in node.children:
|
|
find_replacements(child)
|
|
|
|
find_replacements(root_node)
|
|
return self._apply_replacements()
|