#! /usr/bin/env python3 
 | 
# 
 | 
# Copyright (C) 2021 Richard Purdie 
 | 
# 
 | 
# SPDX-License-Identifier: GPL-2.0-only 
 | 
# 
 | 
  
 | 
import argparse 
 | 
import io 
 | 
import os 
 | 
import sys 
 | 
import warnings 
 | 
warnings.simplefilter("default") 
 | 
  
 | 
bindir = os.path.dirname(__file__) 
 | 
topdir = os.path.dirname(bindir) 
 | 
sys.path[0:0] = [os.path.join(topdir, 'lib')] 
 | 
  
 | 
import bb.tinfoil 
 | 
  
 | 
if __name__ == "__main__": 
 | 
    parser = argparse.ArgumentParser(description="Bitbake Query Variable") 
 | 
    parser.add_argument("variable", help="variable name to query") 
 | 
    parser.add_argument("-r", "--recipe", help="Recipe name to query", default=None, required=False) 
 | 
    parser.add_argument('-u', '--unexpand', help='Do not expand the value (with --value)', action="store_true") 
 | 
    parser.add_argument('-f', '--flag', help='Specify a variable flag to query (with --value)', default=None) 
 | 
    parser.add_argument('--value', help='Only report the value, no history and no variable name', action="store_true") 
 | 
    args = parser.parse_args() 
 | 
  
 | 
    if args.unexpand and not args.value: 
 | 
        print("--unexpand only makes sense with --value") 
 | 
        sys.exit(1) 
 | 
  
 | 
    if args.flag and not args.value: 
 | 
        print("--flag only makes sense with --value") 
 | 
        sys.exit(1) 
 | 
  
 | 
    with bb.tinfoil.Tinfoil(tracking=True) as tinfoil: 
 | 
        if args.recipe: 
 | 
            tinfoil.prepare(quiet=2) 
 | 
            d = tinfoil.parse_recipe(args.recipe) 
 | 
        else: 
 | 
            tinfoil.prepare(quiet=2, config_only=True) 
 | 
            d = tinfoil.config_data 
 | 
        if args.flag: 
 | 
            print(str(d.getVarFlag(args.variable, args.flag, expand=(not args.unexpand)))) 
 | 
        elif args.value: 
 | 
            print(str(d.getVar(args.variable, expand=(not args.unexpand)))) 
 | 
        else: 
 | 
            bb.data.emit_var(args.variable, d=d, all=True) 
 |