File: eval_expr.py

package info (click to toggle)
kconfiglib 14.1.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,400 kB
  • sloc: python: 8,498; sh: 34; makefile: 8
file content (24 lines) | stat: -rw-r--r-- 643 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Evaluates an expression (e.g. "X86_64 || (X86_32 && X86_LOCAL_APIC)") in the
# context of a configuration. Note that this always yields a tristate value (n,
# m, or y).
#
# Usage:
#
#   $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/eval_expr.py SCRIPT_ARG=<expr>

import sys

import kconfiglib


if len(sys.argv) < 3:
    sys.exit("Pass the expression to evaluate with SCRIPT_ARG=<expression>")

kconf = kconfiglib.Kconfig(sys.argv[1])
expr = sys.argv[2]

# Enable modules so that m doesn't get demoted to n
kconf.modules.set_value(2)

print("the expression '{}' evaluates to {}"
      .format(expr, kconf.eval_string(expr)))