Skip to main content
Glama
labels.bzl2.26 kB
# 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. ### Lookup rules used by BXL script (See fdb.bxl) driven by the labels below: # 1. If target has no labels we assume a given target is a rule provider and it exposes relevant providers that BXL script depends on for a given language rule # 2. If target has a label `dbg:info:exec=//another:target` then we assume that `ExecInfo` (see types.bzl) will be obtained via [RunInfo] of another target (//another:target). # For example: # Running "buck run //another:target" (or via using [RunInfo]) should produce `ExecInfo` as its stdout # 3. If target has a label `dbg:info:ref=//another:target` we assume a presence of //another:target which we can inspect for the presence of relevant providers (see fdb.bxl) # This label indicates where to locate "[RunInfo]" which would output `ExecInfo` -compatible output DBG_INFO_EXEC = "dbg:info:exec" # This label indicates where to locate "rule provider" for a given target name. Rule providers contains language/framework # specific information that help debugging tools to properly configure a debugger. (Support for any given language/rule needs to be implemented in fdb.bxl) DBG_INFO_REF = "dbg:info:ref" DBG_INFO_DISABLE_INCOMPATIBLE_SANITIZERS = "dbg:info:disable-sanitizers" def dbg_info_exec(target_label) -> list[str]: return ["{}={}".format(DBG_INFO_EXEC, target_label)] def dbg_info_ref(target_label) -> list[str]: return ["{}={}".format(DBG_INFO_REF, target_label)] def get_info_ref(labels: list[str]) -> [str, None]: for label in labels: result = _get_value_by_mark(DBG_INFO_REF, label) if result: return result return None def get_label_or_mark(label: str) -> str: for mark in [DBG_INFO_EXEC, DBG_INFO_REF]: if label.startswith(mark): return mark return label def _get_value_by_mark(mark: str, label: str) -> [str, None]: if label.startswith(mark + "="): return label.removeprefix(mark + "=") return None

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