summaryrefslogtreecommitdiff
path: root/scripts/kconfig/example
Unidiff
Diffstat (limited to 'scripts/kconfig/example') (more/less context) (ignore whitespace changes)
-rw-r--r--scripts/kconfig/example/miniconf.rb32
-rw-r--r--scripts/kconfig/example/query.rb34
2 files changed, 66 insertions, 0 deletions
diff --git a/scripts/kconfig/example/miniconf.rb b/scripts/kconfig/example/miniconf.rb
new file mode 100644
index 0000000..e687fbb
--- a/dev/null
+++ b/scripts/kconfig/example/miniconf.rb
@@ -0,0 +1,32 @@
1require "kconfig"
2
3include Kconfig
4
5conf_parse("arch/i386/Kconfig")
6conf_read(nil)
7
8def conf(menu)
9 return unless menu.isVisible?
10 prompt = menu.prompt
11 if prompt.type == P_COMMENT || prompt.type == P_MENU
12 print "* #{prompt.text}\n"
13 end
14 sym = menu.sym
15 if sym
16 begin
17 print "#{prompt.text} (#{sym.get_string})? "
18 unless sym.isChangable?
19 print "\n"
20 break
21 end
22 val = gets.strip
23 end until val.empty? || sym.set_string(val)
24 end
25 menu.each do |child|
26 conf(child)
27 end
28end
29
30conf(Kconfig.rootmenu)
31
32conf_write(nil)
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 @@
1require "kconfig"
2
3include Kconfig
4
5conf_parse("arch/i386/Kconfig")
6conf_read(nil)
7
8sym = Kconfig::Symbol.find(ARGV[0])
9if !sym
10 print "Symbol #{ARGV[0]} not found!\n"
11 exit
12end
13
14sym.calc_value
15print "symbol: #{sym.name}\n"
16print " type: #{Kconfig::Symbol.type_name(sym.type)}\n"
17print " value: #{sym.get_string}\n"
18print " choice\n" if sym.isChoice?
19print " choice value\n" if sym.isChoiceValue?
20print " properties:\n" if sym.prop
21sym.each do |prop|
22 case prop.type
23 when P_PROMPT
24 print " prompt: #{prop.text}\n"
25 when P_DEFAULT
26 prop.def.calc_value
27 print " default: #{prop.def.get_string}\n"
28 when P_CHOICE
29 print " choice reference\n"
30 else
31 print " unknown property: #{Property.type_name(prop.type)}\n"
32 end
33 print " dep: #{prop.visible.expr}\n" if prop.visible.expr
34end