summaryrefslogtreecommitdiff
path: root/scripts/kconfig/example/query.rb
Side-by-side diff
Diffstat (limited to 'scripts/kconfig/example/query.rb') (more/less context) (ignore whitespace changes)
-rw-r--r--scripts/kconfig/example/query.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/kconfig/example/query.rb b/scripts/kconfig/example/query.rb
new file mode 100644
index 0000000..2f47880
--- a/dev/null
+++ b/scripts/kconfig/example/query.rb
@@ -0,0 +1,34 @@
+require "kconfig"
+
+include Kconfig
+
+conf_parse("arch/i386/Kconfig")
+conf_read(nil)
+
+sym = Kconfig::Symbol.find(ARGV[0])
+if !sym
+ print "Symbol #{ARGV[0]} not found!\n"
+ exit
+end
+
+sym.calc_value
+print "symbol: #{sym.name}\n"
+print " type: #{Kconfig::Symbol.type_name(sym.type)}\n"
+print " value: #{sym.get_string}\n"
+print " choice\n" if sym.isChoice?
+print " choice value\n" if sym.isChoiceValue?
+print " properties:\n" if sym.prop
+sym.each do |prop|
+ case prop.type
+ when P_PROMPT
+ print " prompt: #{prop.text}\n"
+ when P_DEFAULT
+ prop.def.calc_value
+ print " default: #{prop.def.get_string}\n"
+ when P_CHOICE
+ print " choice reference\n"
+ else
+ print " unknown property: #{Property.type_name(prop.type)}\n"
+ end
+ print " dep: #{prop.visible.expr}\n" if prop.visible.expr
+end