build-tool 0.1.4 → 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +2 -3
- data/History.txt +29 -0
- data/Manifest.txt +39 -10
- data/README.txt +5 -8
- data/Rakefile +14 -6
- data/bin/build-tool +3 -35
- data/db/migrations/001_command_histories.rb +20 -0
- data/db/migrations/002_module_events.rb +24 -0
- data/db/migrations/003_command_histories_add_logfile.rb +19 -0
- data/lib/build-tool.rb +1 -1
- data/lib/build-tool/application.rb +103 -30
- data/lib/build-tool/build-system/autoconf.rb +69 -6
- data/lib/build-tool/build-system/base.rb +2 -25
- data/lib/build-tool/build-system/custom.rb +6 -19
- data/lib/build-tool/build-system/kdel10n.rb +39 -0
- data/lib/build-tool/build-system/none.rb +82 -0
- data/lib/build-tool/cfg/lexer.rb +133 -7
- data/lib/build-tool/cfg/lexer.rex +58 -6
- data/lib/build-tool/cfg/node.rb +13 -1
- data/lib/build-tool/cfg/parser.rb +519 -333
- data/lib/build-tool/cfg/parser.y +74 -11
- data/lib/build-tool/cfg/visitor.rb +182 -20
- data/lib/build-tool/command_actions.rb +202 -0
- data/lib/build-tool/commands.rb +193 -49
- data/lib/build-tool/commands/build.rb +13 -8
- data/lib/build-tool/commands/configure.rb +8 -3
- data/lib/build-tool/commands/environments.rb +4 -8
- data/lib/build-tool/commands/environments/list.rb +8 -0
- data/lib/build-tool/commands/fetch.rb +7 -2
- data/lib/build-tool/commands/gc.rb +53 -0
- data/lib/build-tool/commands/history.rb +111 -0
- data/lib/build-tool/commands/install.rb +6 -1
- data/lib/build-tool/commands/lsfeatures.rb +73 -0
- data/lib/build-tool/commands/modules.rb +3 -7
- data/lib/build-tool/commands/modules/info.rb +15 -6
- data/lib/build-tool/commands/modules/list.rb +10 -5
- data/lib/build-tool/commands/rebase.rb +6 -1
- data/lib/build-tool/commands/recipes.rb +3 -7
- data/lib/build-tool/configuration.rb +24 -1
- data/lib/build-tool/environment.rb +17 -3
- data/lib/build-tool/feature.rb +47 -0
- data/lib/build-tool/history.rb +173 -0
- data/lib/build-tool/module.rb +49 -90
- data/lib/build-tool/recipe.rb +5 -0
- data/lib/build-tool/vcs/archive.rb +140 -0
- data/lib/build-tool/vcs/base.rb +5 -5
- data/lib/build-tool/vcs/git-svn.rb +4 -0
- data/lib/build-tool/vcs/git.rb +4 -0
- data/lib/mj/logging.rb +11 -0
- data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/compile.sh +0 -0
- data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/configure.sh +0 -0
- data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/install.sh +0 -0
- data/recipes/kde/custom/scripting/pyqt4/compile.sh +10 -0
- data/recipes/kde/custom/scripting/pyqt4/configure.sh +14 -0
- data/recipes/kde/custom/scripting/pyqt4/install.sh +10 -0
- data/recipes/kde/custom/scripting/sip/compile.sh +10 -0
- data/recipes/kde/custom/scripting/sip/configure.sh +13 -0
- data/recipes/kde/custom/scripting/sip/install.sh +10 -0
- data/recipes/kde/files/xsession +8 -4
- data/recipes/kde/kde-bindings.recipe +22 -0
- data/recipes/kde/kde-core.recipe +104 -0
- data/recipes/kde/kde-devel.recipe +38 -0
- data/recipes/kde/kde-finance.recipe +17 -0
- data/recipes/kde/kde-graphics.recipe +27 -0
- data/recipes/kde/kde-kdevelop.recipe +116 -0
- data/recipes/kde/kde-l10n.recipe +14 -0
- data/recipes/kde/kde-multimedia.recipe +31 -0
- data/recipes/kde/kde-network.recipe +55 -0
- data/recipes/kde/kde-office.recipe +28 -0
- data/recipes/kde/kde-plasma.recipe +117 -0
- data/recipes/{kdeqt4.6/recipe → kde/kde-qt.recipe} +25 -57
- data/recipes/kde/kde-scripting.recipe +63 -0
- data/recipes/kde/kde-support.recipe +73 -0
- data/recipes/kde/kde-utils.recipe +22 -0
- data/recipes/kde/kde-webdev.recipe +41 -0
- data/recipes/kde/recipe +92 -532
- data/recipes/kde/recipe-local +58 -2
- data/recipes/kde/settings.yaml +17 -0
- data/recipes/kde43/recipe-local +58 -2
- data/test/test_configuration_parser.rb +76 -21
- data/test/test_feature.rb +34 -0
- data/test/test_history.rb +149 -0
- metadata +185 -30
- metadata.gz.sig +0 -0
- data/lib/build-tool/pluginbase.rb +0 -43
- data/recipes/kdeqt4.6/info.yaml +0 -7
- data/recipes/kdeqt4.6/recipe-local +0 -30
- data/recipes/kdeqt4.6/settings.yaml +0 -27
- data/tasks/rdoc.rake +0 -34
- data/test.rb +0 -28
@@ -11,6 +11,11 @@ module BuildTool; module Commands;
|
|
11
11
|
name "build"
|
12
12
|
description "Build a module."
|
13
13
|
|
14
|
+
# Log this command if $noop is not active
|
15
|
+
def log?
|
16
|
+
! $noop
|
17
|
+
end
|
18
|
+
|
14
19
|
def initialize_options
|
15
20
|
|
16
21
|
@clean = false
|
@@ -73,34 +78,34 @@ module BuildTool; module Commands;
|
|
73
78
|
|
74
79
|
def do_execute_module( mod )
|
75
80
|
if @from_scratch or @clean
|
76
|
-
|
81
|
+
clean( mod, @from_scratch )
|
77
82
|
end
|
78
83
|
|
79
84
|
if @update
|
80
85
|
if mod.checkedout?
|
81
|
-
|
82
|
-
|
86
|
+
fetch( mod )
|
87
|
+
rebase( mod )
|
83
88
|
else
|
84
|
-
|
89
|
+
clone( mod )
|
85
90
|
end
|
86
91
|
end
|
87
92
|
|
88
93
|
if $noop or mod.checkedout?
|
89
94
|
if @configure or @reconfigure or !mod.configured?
|
90
95
|
if @reconfigure
|
91
|
-
|
96
|
+
reconfigure( mod )
|
92
97
|
else
|
93
98
|
# See outer if. @configure or !mod.configured?
|
94
|
-
|
99
|
+
configure( mod )
|
95
100
|
end
|
96
101
|
end
|
97
102
|
|
98
103
|
if @build
|
99
|
-
|
104
|
+
make( mod )
|
100
105
|
end
|
101
106
|
|
102
107
|
if @install
|
103
|
-
|
108
|
+
install( mod, true )
|
104
109
|
end
|
105
110
|
|
106
111
|
else
|
@@ -14,6 +14,11 @@ module BuildTool; module Commands;
|
|
14
14
|
name "configure"
|
15
15
|
description "configure the module"
|
16
16
|
|
17
|
+
# Log this command if $noop is not active
|
18
|
+
def log?
|
19
|
+
! $noop
|
20
|
+
end
|
21
|
+
|
17
22
|
def initialize_options
|
18
23
|
|
19
24
|
@rmcache = false
|
@@ -51,13 +56,13 @@ module BuildTool; module Commands;
|
|
51
56
|
def do_execute_module( mod )
|
52
57
|
if mod.checkedout?
|
53
58
|
if @from_scratch or @clean
|
54
|
-
|
59
|
+
clean( mod, @from_scratch )
|
55
60
|
end
|
56
61
|
|
57
62
|
if @rmcache and !@from_scratch
|
58
|
-
|
63
|
+
reconfigure( mod )
|
59
64
|
else
|
60
|
-
|
65
|
+
configure( mod )
|
61
66
|
end
|
62
67
|
else
|
63
68
|
logger.info "Not checked out. Skipping"
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'build-tool/commands'
|
2
2
|
|
3
|
-
module BuildTool; module Commands
|
3
|
+
module BuildTool; module Commands
|
4
4
|
|
5
|
-
class
|
5
|
+
class EnvironmentsCLI < Commands::SubCommands
|
6
6
|
|
7
7
|
name "environments"
|
8
8
|
description "Environment related commands."
|
@@ -19,11 +19,7 @@ module BuildTool; module Commands; module Environments
|
|
19
19
|
raise NotImplementedError
|
20
20
|
end
|
21
21
|
|
22
|
-
end # class
|
22
|
+
end # class EnvironmentsCLI
|
23
23
|
|
24
|
-
|
25
|
-
cmd = CLI.new( *args )
|
26
|
-
end
|
27
|
-
|
28
|
-
end; end; end # module BuildTool::Commands::Environments
|
24
|
+
end; end # module BuildTool::Commands::EnvironmentsCLI
|
29
25
|
|
@@ -11,6 +11,13 @@ module BuildTool; module Commands; module Environments
|
|
11
11
|
description "List all available environments in alphabetical order."
|
12
12
|
cmdalias "lsenv"
|
13
13
|
|
14
|
+
def initialize_options
|
15
|
+
@all = false
|
16
|
+
options.on( "--all", "Show inactive environments." ) { |t|
|
17
|
+
@all = true
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
14
21
|
def do_execute( args )
|
15
22
|
if args.length != 0
|
16
23
|
return usage( "To many arguments." )
|
@@ -20,6 +27,7 @@ module BuildTool; module Commands; module Environments
|
|
20
27
|
say "------------------------------------------------------------"
|
21
28
|
configuration.environments.keys.sort.each do |name|
|
22
29
|
env = configuration.environment(name)
|
30
|
+
next if !env.active? && !@all
|
23
31
|
if env.parent
|
24
32
|
say "%-15s %s" % [ name, env.parent.name ]
|
25
33
|
else
|
@@ -14,6 +14,11 @@ module BuildTool; module Commands;
|
|
14
14
|
name "fetch"
|
15
15
|
description "fetch remote changes (if applicable)"
|
16
16
|
|
17
|
+
# Log this command if $noop is not active
|
18
|
+
def log?
|
19
|
+
! $noop
|
20
|
+
end
|
21
|
+
|
17
22
|
def applicable?
|
18
23
|
BuildTool::Application.instance.name != "build-tool"
|
19
24
|
end
|
@@ -30,9 +35,9 @@ module BuildTool; module Commands;
|
|
30
35
|
def do_execute_module( mod )
|
31
36
|
|
32
37
|
if mod.checkedout?
|
33
|
-
|
38
|
+
fetch( mod )
|
34
39
|
else
|
35
|
-
|
40
|
+
clone( mod )
|
36
41
|
end
|
37
42
|
|
38
43
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'build-tool/commands'
|
2
|
+
|
3
|
+
module BuildTool; module Commands;
|
4
|
+
|
5
|
+
#
|
6
|
+
# BuildCommand
|
7
|
+
#
|
8
|
+
class Gc < ModuleBasedCommand
|
9
|
+
|
10
|
+
name "gc"
|
11
|
+
description "Remove old stuff"
|
12
|
+
|
13
|
+
def initialize_options
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def applicable?
|
18
|
+
BuildTool::Application.instance.name != "build-tool"
|
19
|
+
end
|
20
|
+
|
21
|
+
def do_execute( args )
|
22
|
+
case args.length
|
23
|
+
|
24
|
+
when 0:
|
25
|
+
# Nothing
|
26
|
+
#
|
27
|
+
else
|
28
|
+
super
|
29
|
+
end
|
30
|
+
|
31
|
+
BuildTool::History::CommandLog.older_than.each do |cmd|
|
32
|
+
if cmd.logdir
|
33
|
+
if $noop
|
34
|
+
say "rm -rf #{cmd.logdir}"
|
35
|
+
else
|
36
|
+
debug("Removing #{cmd.logdir}");
|
37
|
+
File.rm_rf( cmd.logdir ) if File.exist?( cmd.logdir )
|
38
|
+
end
|
39
|
+
end
|
40
|
+
cmd.delete
|
41
|
+
end
|
42
|
+
return 0
|
43
|
+
end
|
44
|
+
|
45
|
+
def do_execute_module( mod )
|
46
|
+
mod.gc
|
47
|
+
end
|
48
|
+
|
49
|
+
end # class Info
|
50
|
+
|
51
|
+
end; end # module BuildTool::Commands
|
52
|
+
|
53
|
+
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require 'build-tool/commands'
|
2
|
+
|
3
|
+
module BuildTool; module Commands;
|
4
|
+
|
5
|
+
#
|
6
|
+
# BuildCommand
|
7
|
+
#
|
8
|
+
class History < Standard
|
9
|
+
|
10
|
+
name "history"
|
11
|
+
description "show command history"
|
12
|
+
|
13
|
+
def initialize_options
|
14
|
+
|
15
|
+
# Show detailed history. Add start time, duration and success/failure
|
16
|
+
@long = false
|
17
|
+
options.on( "-l", "--long", "Use long list format." ) { |t|
|
18
|
+
@long = true
|
19
|
+
}
|
20
|
+
super
|
21
|
+
end
|
22
|
+
|
23
|
+
def applicable?
|
24
|
+
BuildTool::Application.instance.name != "build-tool"
|
25
|
+
end
|
26
|
+
|
27
|
+
def do_execute( args )
|
28
|
+
case args.length
|
29
|
+
|
30
|
+
when 0:
|
31
|
+
return show_command_history
|
32
|
+
when 1:
|
33
|
+
return show_detailed_command_history( args[0] ) if args[0] =~ /^[0-9]+/
|
34
|
+
case args[0][0,1]
|
35
|
+
when '+':
|
36
|
+
return show_detailed_command_history( args[0] )
|
37
|
+
else
|
38
|
+
return show_module_history( args[0] )
|
39
|
+
end
|
40
|
+
else
|
41
|
+
return usage( "To many arguments" )
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def show_command( cmd )
|
46
|
+
if @long
|
47
|
+
say " %04d %s %s # %s [%s]" % [ cmd.id, cmd.started_at.strftime("%x %X"), cmd.duration, cmd.command, cmd.state_str ]
|
48
|
+
else
|
49
|
+
say " %04d %s [%s]" % [ cmd.id, cmd.command, cmd.state_str ]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def show_command_history
|
54
|
+
# *TODO* Make the number of printed command configurable
|
55
|
+
BuildTool::History::CommandLog.last(50).reverse().each do |cmd|
|
56
|
+
show_command cmd
|
57
|
+
end
|
58
|
+
|
59
|
+
return 0
|
60
|
+
end
|
61
|
+
|
62
|
+
def show_module_history( modname )
|
63
|
+
mod = Application::instance.configuration.module( modname )
|
64
|
+
if mod.nil?
|
65
|
+
return usage( "Unknown module #{modname}" )
|
66
|
+
end
|
67
|
+
|
68
|
+
BuildTool::History::CommandLog.last_by_module( modname ).reverse.each do |cmd|
|
69
|
+
show_command( cmd )
|
70
|
+
|
71
|
+
last_module=""
|
72
|
+
cmd.module_logs_dataset.filter( :module => modname ).each do |e|
|
73
|
+
if e.module != last_module
|
74
|
+
say "\t#{e.module}"
|
75
|
+
last_module = e.module
|
76
|
+
end
|
77
|
+
say "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
return 0
|
81
|
+
end
|
82
|
+
|
83
|
+
def show_detailed_command_history( id )
|
84
|
+
if id[0,1] == '+'
|
85
|
+
cmd = BuildTool::History::CommandLog.most_recent( id.to_i )
|
86
|
+
return 0 if cmd.nil?
|
87
|
+
else
|
88
|
+
cmd = BuildTool::History::CommandLog[id.to_i]
|
89
|
+
if cmd.nil?
|
90
|
+
logger.error( "No entry with id #{id.to_i} found in history!")
|
91
|
+
return -1
|
92
|
+
end
|
93
|
+
end
|
94
|
+
show_command( cmd )
|
95
|
+
|
96
|
+
last_module=""
|
97
|
+
cmd.module_logs.each do |e|
|
98
|
+
if e.module != last_module
|
99
|
+
say "\t#{e.module}"
|
100
|
+
last_module = e.module
|
101
|
+
end
|
102
|
+
say "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ]
|
103
|
+
end
|
104
|
+
|
105
|
+
return 0
|
106
|
+
end
|
107
|
+
|
108
|
+
end # class Info
|
109
|
+
|
110
|
+
end; end # module BuildTool::Commands
|
111
|
+
|
@@ -14,6 +14,11 @@ module BuildTool; module Commands;
|
|
14
14
|
name "install"
|
15
15
|
description "install the module"
|
16
16
|
|
17
|
+
# Log this command if $noop is not active
|
18
|
+
def log?
|
19
|
+
! $noop
|
20
|
+
end
|
21
|
+
|
17
22
|
def initialize_options
|
18
23
|
|
19
24
|
@fast = false
|
@@ -40,7 +45,7 @@ module BuildTool; module Commands;
|
|
40
45
|
|
41
46
|
def do_execute_module( mod )
|
42
47
|
if mod.checkedout?
|
43
|
-
|
48
|
+
install( mod, @fast )
|
44
49
|
else
|
45
50
|
logger.info "Not checked out. Skipping"
|
46
51
|
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'build-tool/commands'
|
2
|
+
|
3
|
+
module BuildTool; module Commands;
|
4
|
+
|
5
|
+
#
|
6
|
+
# BuildCommand
|
7
|
+
#
|
8
|
+
class Lsfeatures < Standard
|
9
|
+
|
10
|
+
name "lsfeatures"
|
11
|
+
description "List all available features."
|
12
|
+
|
13
|
+
def initialize_options
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def applicable?
|
18
|
+
BuildTool::Application.instance.name != "build-tool"
|
19
|
+
end
|
20
|
+
|
21
|
+
def do_execute( args )
|
22
|
+
if args.length > 1
|
23
|
+
# *TODO* print better message
|
24
|
+
return usage "To many arguments."
|
25
|
+
end
|
26
|
+
|
27
|
+
if args.length == 1
|
28
|
+
return show_feature( args[0] )
|
29
|
+
else
|
30
|
+
return list_features
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def list_features
|
35
|
+
say "%-30s| %s | %s" % [ "Feature", "A", "Description" ]
|
36
|
+
say "==========================================================="
|
37
|
+
features = configuration.features
|
38
|
+
features.keys.sort.each do |name|
|
39
|
+
feature = features[name]
|
40
|
+
# Skip feature without modules
|
41
|
+
next if feature.modules.empty?
|
42
|
+
active = "N"
|
43
|
+
active = "Y" if feature.active?
|
44
|
+
say "%-30s| %s | %s" % [ name, active, feature.description ]
|
45
|
+
end
|
46
|
+
|
47
|
+
return 0
|
48
|
+
end
|
49
|
+
|
50
|
+
def show_feature( name )
|
51
|
+
feature = configuration.features[name]
|
52
|
+
|
53
|
+
if feature.nil?
|
54
|
+
logger.error( "Unknown feature '%s'" % name )
|
55
|
+
return -1
|
56
|
+
end
|
57
|
+
|
58
|
+
say "Name : %s" % feature.path
|
59
|
+
say "Modules"
|
60
|
+
say "===================================================="
|
61
|
+
feature.modules.each do |mod|
|
62
|
+
next if mod.is_template?
|
63
|
+
say " %-20s: %s" % [ mod.name, mod.description ]
|
64
|
+
end
|
65
|
+
return 0
|
66
|
+
end
|
67
|
+
|
68
|
+
end # class Info
|
69
|
+
|
70
|
+
end; end # module BuildTool::Commands
|
71
|
+
|
72
|
+
|
73
|
+
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'build-tool/commands'
|
2
2
|
|
3
|
-
module BuildTool; module Commands;
|
3
|
+
module BuildTool; module Commands;
|
4
4
|
|
5
5
|
class CLI < Commands::SubCommands
|
6
6
|
|
@@ -19,11 +19,7 @@ module BuildTool; module Commands; module Modules
|
|
19
19
|
raise NotImplementedError
|
20
20
|
end
|
21
21
|
|
22
|
-
end # class
|
22
|
+
end # class ModulesCLI
|
23
23
|
|
24
|
-
|
25
|
-
cmd = CLI.new( *args )
|
26
|
-
end
|
27
|
-
|
28
|
-
end; end; end # module BuildTool::Commands::Modules
|
24
|
+
end; end # module BuildTool::Commands::ModulesCLI
|
29
25
|
|
@@ -11,6 +11,7 @@ module BuildTool; module Commands; module Modules
|
|
11
11
|
description "show detailed information about modules."
|
12
12
|
|
13
13
|
def do_execute_module( mod )
|
14
|
+
say "Active: #{mod.active?}"
|
14
15
|
|
15
16
|
if mod.repository
|
16
17
|
say "Repository: #{mod.repository.url}/#{mod.remote_path}"
|
@@ -26,7 +27,6 @@ module BuildTool; module Commands; module Modules
|
|
26
27
|
say "Build Directory #{mod.build_directory} #{mod.configured? ? '(CONFIGURED)' : '(TODO)' }"
|
27
28
|
else
|
28
29
|
say "Local Checkout: build-prefix not configured"
|
29
|
-
say "Local Checkout: build-prefix not configured"
|
30
30
|
end
|
31
31
|
|
32
32
|
say "Prefix: #{mod.install_prefix.to_s}"
|
@@ -43,26 +43,35 @@ module BuildTool; module Commands; module Modules
|
|
43
43
|
if mod.vcs_configuration
|
44
44
|
case mod.vcs_configuration.name
|
45
45
|
when 'svn'
|
46
|
+
when 'archive'
|
46
47
|
when 'git'
|
47
48
|
say " Remote: %s -> %s" % [ "origin", mod.vcs_configuration.repository.url ]
|
48
49
|
mod.vcs_configuration.remote.each do |key, val|
|
49
50
|
say " Remote: %s -> %s" % [ key, val.url ]
|
50
51
|
end
|
52
|
+
say " Track branch: #{mod.vcs_configuration.track_remote}/#{mod.vcs_configuration.track_branch}"
|
51
53
|
when 'git-svn'
|
54
|
+
say " Remote: %s -> %s" % [ "git-svn", mod.vcs_configuration.repository.url ]
|
55
|
+
mod.vcs_configuration.remote.each do |key, val|
|
56
|
+
say " Remote: %s -> %s" % [ key, val.url ]
|
57
|
+
end
|
52
58
|
mod.vcs_configuration.externals.each do |key, val|
|
53
59
|
say " External: #{key} -> #{val}"
|
54
60
|
end
|
55
61
|
else
|
56
62
|
logger.warn "Unknown vcs #{mod.vcs_configuration.name}"
|
57
63
|
end
|
58
|
-
say " Track branch: #{mod.vcs_configuration.track_remote}/#{mod.vcs_configuration.track_branch}"
|
59
64
|
end # if mod.vcs_configuration
|
60
65
|
|
61
66
|
bs = mod.build_system
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
67
|
+
if bs
|
68
|
+
say "Build System: #{bs.name}"
|
69
|
+
say " Out Of Source Build #{bs.out_of_source}"
|
70
|
+
bs.options.sort.each do |var|
|
71
|
+
say " %-25s %s" % [ var + ":", bs[var] ]
|
72
|
+
end
|
73
|
+
else
|
74
|
+
say "Build System: Not configured"
|
66
75
|
end
|
67
76
|
|
68
77
|
return 0
|