build-tool 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
@@ -1 +1 @@
1
- k�#��Wg>��%��BA���l�Tq�4f����85V���52l�� �Ď����܆!�7B� ��9CH�09H[=]�K4����O��Aі���ͬ֔���^DS�0�;{@(0��74s��64IЏ�w��O?��Lf��xϗ$�4�u��!�m@�艢��Se&��02���hY �ْ�U?�4b4ݔb�/�P��.��ָ���0�9��Cz7PPT�;���B(�7B"��q��<%`����\{�ܥ�
1
+ 1>�2��,H�|Ѳ��-�w�m,[B��$ ʺBmi���HG�x�-_�Մrl�oƵ�
2
+ N8"�,΍h(M3܅^8�!w�2��it�^�j��T���_��v;�8�����f�܉��-p��?o?+��؍F�$n�N@u�5�Zk�>I�������.B^��E,9����������% �a+�ւ�,��������F1y��^j� ��3nh�#kD�Q �.��u�z��>�;���W4�-
data/History.txt CHANGED
@@ -1,3 +1,12 @@
1
+ == 0.4.1
2
+ - Enhancements
3
+ - Colorize the output of the history command.
4
+ - When fetching from remote specify the --prune option.
5
+ - Improve some error messages.
6
+ - Bugfix
7
+ - Some ruby 1.9 compatibility fixes. No idea if it really works with 1.99.
8
+ - Do not register remotes as repository declarations.
9
+
1
10
  == 0.4.0
2
11
  - Feature
3
12
  - Show a ansi terminal code based progressbar when compiling or installing in non verbose mode.
data/Manifest.txt CHANGED
@@ -5,6 +5,7 @@ Manifest.txt
5
5
  README.txt
6
6
  Rakefile
7
7
  bin/build-tool
8
+ bin/build-tool-1.9
8
9
  db/migrations/001_command_histories.rb
9
10
  db/migrations/002_module_events.rb
10
11
  db/migrations/003_command_histories_add_logfile.rb
data/README.txt CHANGED
@@ -50,7 +50,10 @@ http://michael-jansen.biz/build-tool
50
50
 
51
51
  == REQUIREMENTS:
52
52
 
53
- * logging > 1.2.2
53
+ * logging >= 1.2.2
54
+ * sequel >= 3.8.0
55
+ * sqlite3-ruby >= 1.2
56
+ * ansi >= 1.2
54
57
 
55
58
  == INSTALL:
56
59
 
@@ -60,5 +63,5 @@ http://michael-jansen.biz/build-tool
60
63
 
61
64
  (The GPL LICENSE)
62
65
 
63
- Copyright (c) 2009 Michael Jansen
66
+ Copyright (c) 2009-2010 Michael Jansen
64
67
 
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby1.9
2
+ #
3
+ # Created by Michael Jansen on 2009-8-31.
4
+ # Copyright (c) 2009. All rights reserved.
5
+
6
+ require 'pathname'
7
+ require 'rubygems'
8
+
9
+ # libs relative to the link target
10
+ if File.symlink?(__FILE__)
11
+ root_directory = File.dirname(File.readlink(__FILE__))
12
+ else
13
+ root_directory = File.dirname(__FILE__)
14
+ end
15
+
16
+ root_directory = Pathname.new( root_directory ).join( '..' )
17
+ require File.expand_path( root_directory + "lib/build-tool")
18
+
19
+ require 'build-tool/application'
20
+
21
+ exit BuildTool.main( $0, ARGV, root_directory );
data/lib/build-tool.rb CHANGED
@@ -2,6 +2,6 @@
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module BuildTool
5
- VERSION = '0.4.0'
5
+ VERSION = '0.4.1'
6
6
  end
7
7
 
@@ -89,7 +89,7 @@ def option_names
89
89
  end
90
90
 
91
91
  def to_s
92
- return "#{self.object_id} #{self.module} #{@options.keys.join( ', ')}"
92
+ return "#{self.module.name} #{self.name} #{@options.keys.join( ', ')}"
93
93
  end
94
94
 
95
95
  def active?
@@ -121,7 +121,7 @@ def []( var )
121
121
  end
122
122
  return parentval if !parentval.nil?
123
123
  return "" if @supported_options.include?( var )
124
- raise UnknownOptionError, "#{self} Option #{var} is unknown for build-system #{name}"
124
+ raise UnknownOptionError, "[#{self.module.name}] Option #{var} is unknown for build-system #{name}"
125
125
  end
126
126
 
127
127
  def []=( var, value )
@@ -53,12 +53,16 @@ def execute( script )
53
53
  if !path.executable?
54
54
  raise CustomError, "Script %s not executable!" % path.to_s
55
55
  end
56
- return self.module.environment.execute(
57
- "%s %s" % [ path.to_s, source_directory ],
56
+ command = "%s %s" % [ path.to_s, source_directory ]
57
+ rc = self.module.environment.execute(
58
+ command,
58
59
  build_directory,
59
60
  {
60
61
  'INSTALL_PREFIX' => install_prefix.to_s,
61
62
  }.merge(Hash[option_hash]))
63
+ if rc != 0
64
+ raise CustomError, "#{command.to_s} failed with error code #{rc}";
65
+ end
62
66
  end
63
67
 
64
68
  def install( fast )
@@ -59,6 +59,7 @@ def initialize(values = nil)
59
59
  ModuleRemotePath
60
60
  ModuleTemplate
61
61
 
62
+ RemoteDeclaration
62
63
  RepositoryDeclaration
63
64
  RepositoryPath
64
65
  RepositoryUser
@@ -22,7 +22,7 @@ module Cfg
22
22
 
23
23
  class Parser < BuildTool::Cfg::Lexer
24
24
 
25
- module_eval <<'..end lib/build-tool/cfg/parser.y modeval..idd46b8544c3', 'lib/build-tool/cfg/parser.y', 344
25
+ module_eval <<'..end lib/build-tool/cfg/parser.y modeval..id8d638bce17', 'lib/build-tool/cfg/parser.y', 344
26
26
  #
27
27
  ### INNER
28
28
  #
@@ -40,7 +40,7 @@ def parse_string( string, file = "<string>" )
40
40
  return configuration
41
41
  end
42
42
 
43
- ..end lib/build-tool/cfg/parser.y modeval..idd46b8544c3
43
+ ..end lib/build-tool/cfg/parser.y modeval..id8d638bce17
44
44
 
45
45
  ##### racc 1.4.5 generates ###
46
46
 
@@ -797,7 +797,7 @@ def _reduce_51( val, _values, result )
797
797
 
798
798
  module_eval <<'.,.,', 'lib/build-tool/cfg/parser.y', 193
799
799
  def _reduce_52( val, _values, result )
800
- result = RepositoryDeclarationNode.new( val[1..-1]);
800
+ result = RemoteDeclarationNode.new( val[1..-1]);
801
801
  result
802
802
  end
803
803
  .,.,
@@ -191,7 +191,7 @@ rule
191
191
  ;
192
192
 
193
193
  git_statement
194
- : REMOTE STRING repository_statements END { result = RepositoryDeclarationNode.new( val[1..-1]); }
194
+ : REMOTE STRING repository_statements END { result = RemoteDeclarationNode.new( val[1..-1]); }
195
195
  ;
196
196
 
197
197
  #
@@ -309,7 +309,7 @@ def visit_GitDeclarationNode( node )
309
309
  return @vcs
310
310
  end
311
311
 
312
- def visit_RepositoryDeclarationNode( node )
312
+ def visit_RemoteDeclarationNode( node )
313
313
  visitor = RepositoryDeclarationNodeVisitor.new( configuration )
314
314
  repo = node.accept(visitor)
315
315
  @vcs.remote[repo.name] = repo
@@ -358,11 +358,10 @@ def visit_ApplyPatchesNode( node )
358
358
  end
359
359
 
360
360
  def visit_ArchiveDeclarationNode( node )
361
- if @module.vcs_configuration and @module.vcs_configuration.name == "archive"
362
- vcs = @module.vcs_configuration.dup
363
- else
364
- vcs = BuildTool::VCS::ArchiveConfiguration.new
365
- end
361
+ vcs = BuildTool::VCS::ArchiveConfiguration.new
362
+ # if @module.vcs_configuration and @module.vcs_configuration.name == "archive"
363
+ # vcs.copy_configuration( @module.vcs_configuration )
364
+ # end
366
365
  @module.vcs_configuration = vcs
367
366
  visitor = ArchiveDeclarationNodeVisitor.new( configuration, vcs )
368
367
  node.accept( visitor )
@@ -406,11 +405,10 @@ def visit_EnvironmentDeclarationNode( node )
406
405
  end
407
406
 
408
407
  def visit_GitDeclarationNode( node )
409
- if @module.vcs_configuration and @module.vcs_configuration.name == "git"
410
- vcs = @module.vcs_configuration.dup
411
- else
412
- vcs = BuildTool::VCS::GitConfiguration.new
413
- end
408
+ vcs = BuildTool::VCS::GitConfiguration.new
409
+ # if @module.vcs_configuration and @module.vcs_configuration.name == "git"
410
+ # vcs.copy_configuration( @module.vcs_configuration )
411
+ # end
414
412
  @module.vcs_configuration = vcs
415
413
  begin
416
414
  visitor = GitDeclarationNodeVisitor.new( configuration, vcs )
@@ -421,11 +419,10 @@ def visit_GitDeclarationNode( node )
421
419
  end
422
420
 
423
421
  def visit_GitSvnDeclarationNode( node )
424
- if @module.vcs_configuration and @module.vcs_configuration.name == "gitsvn"
425
- vcs = @module.vcs_configuration.dup
426
- else
427
- vcs = BuildTool::VCS::GitSvnConfiguration.new
428
- end
422
+ vcs = BuildTool::VCS::GitSvnConfiguration.new
423
+ # if @module.vcs_configuration and @module.vcs_configuration.name == "gitsvn"
424
+ # vcs.copy_configuration( @module.vcs_configuration )
425
+ # end
429
426
  @module.vcs_configuration = vcs
430
427
  visitor = GitSvnDeclarationNodeVisitor.new( configuration, vcs )
431
428
  node.accept( visitor )
@@ -500,11 +497,10 @@ def visit_ShortDescriptionNode( node )
500
497
  end
501
498
 
502
499
  def visit_SvnDeclarationNode( node )
503
- if @module.vcs_configuration and @module.vcs_configuration.name == "svn"
504
- vcs = @module.vcs_configuration.dup
505
- else
506
- vcs = BuildTool::VCS::SvnConfiguration.new
507
- end
500
+ vcs = BuildTool::VCS::SvnConfiguration.new
501
+ # if @module.vcs_configuration and @module.vcs_configuration.name == "svn"
502
+ # vcs.copy_configuration( @module.vcs_configuration )
503
+ # end
508
504
  @module.vcs_configuration = vcs
509
505
  visitor = SvnDeclarationNodeVisitor.new( configuration, vcs )
510
506
  node.accept( visitor )
@@ -553,6 +549,14 @@ def visit_RepositoryDeclarationNode( node )
553
549
  return @repository
554
550
  end
555
551
 
552
+ def visit_RemoteDeclarationNode( node )
553
+ name = node.values[0]
554
+ @repository = BuildTool::Repository.new( name )
555
+ stmts = node.values[1]
556
+ visit_nodes( stmts )
557
+ return @repository
558
+ end
559
+
556
560
  def visit_RepositoryPathNode( node )
557
561
  @repository.path = node.value
558
562
  end
@@ -646,7 +650,7 @@ def visit_SshKeyFileNode( node )
646
650
 
647
651
  end
648
652
 
649
- class SvnDeclarationNodeVisitor < GitDeclarationNodeVisitor
653
+ class SvnDeclarationNodeVisitor < ListVisitor
650
654
 
651
655
  def initialize( configuration, vcs )
652
656
  super( configuration, vcs )
@@ -65,6 +65,7 @@ class Base
65
65
 
66
66
  def initialize( command, prio, type, mod )
67
67
  @command = command
68
+ @level = nil
68
69
  @logdir = command.log_directory.join( mod.name )
69
70
  @type = type
70
71
  @prio = prio
@@ -77,9 +78,18 @@ def do
77
78
  # Make sure the directory for this module exists
78
79
  FileUtils.mkdir_p( @logdir ) if ! $noop
79
80
 
81
+ oldlevel = Logging.appenders['stdout'].level
82
+ if @level
83
+ Logging.appenders['stdout'].level = @level
84
+ end
85
+
80
86
  # Open the logfile and then execute the command
81
- while_logging do
82
- execute
87
+ begin
88
+ while_logging do
89
+ execute
90
+ end
91
+ ensure
92
+ Logging.appenders['stdout'].level = oldlevel
83
93
  end
84
94
  end
85
95
 
@@ -1,5 +1,8 @@
1
1
  require 'build-tool/commands'
2
2
 
3
+ require 'ansi'
4
+
5
+
3
6
  module BuildTool; module Commands;
4
7
 
5
8
  #
@@ -7,6 +10,8 @@ module BuildTool; module Commands;
7
10
  #
8
11
  class History < Standard
9
12
 
13
+ include ANSI::Code
14
+
10
15
  name "history"
11
16
  description "show command history"
12
17
  long_description [ "Query the command history",
@@ -57,7 +62,7 @@ def do_execute( args )
57
62
 
58
63
  def show_command( cmd )
59
64
  if @long
60
- say " %04d %s %s # %s [%s]" % [ cmd.id, cmd.started_at.strftime("%x %X"), cmd.duration, cmd.command, cmd.state_str ]
65
+ say " %04d %s # %s [%s]" % [ cmd.id, cmd.started_at.strftime("%x %X"), cmd.command, cmd.state_str ]
61
66
  else
62
67
  say " %04d %s [%s]" % [ cmd.id, cmd.command, cmd.state_str ]
63
68
  end
@@ -84,7 +89,7 @@ def show_module_history( modname )
84
89
  last_module=""
85
90
  cmd.module_logs_dataset.filter( :module => modname ).each do |e|
86
91
  if e.module != last_module
87
- say "\t#{e.module}"
92
+ say blue { "\t#{e.module}" }
88
93
  last_module = e.module
89
94
  end
90
95
  say "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ]
@@ -109,7 +114,7 @@ def show_detailed_command_history( id )
109
114
  last_module=""
110
115
  cmd.module_logs.each do |e|
111
116
  if e.module != last_module
112
- say "\t#{e.module}"
117
+ say blue { "\t#{e.module}" }
113
118
  last_module = e.module
114
119
  end
115
120
  say "\t\t %s %s (%s) [%s]" % [ e.duration, e.event, e.logfile, e.state_str ]
@@ -133,7 +133,7 @@ def create_build_system( name, parent = nil, *args )
133
133
  end
134
134
 
135
135
  def build_system_adjust( name, parent = nil, *args )
136
- bs = create_build_system( name )
136
+ bs = create_build_system( name, parent )
137
137
  bs.defaults = build_system_defaults( name )
138
138
  return bs
139
139
  end
@@ -45,14 +45,13 @@ def append( name, value )
45
45
  end
46
46
 
47
47
  # Execute command in a shell with the environment set.
48
- def execute( command, wd = nil, env = nil )
49
- values = self.values
50
- values = values.merge( env ) if env
51
- rc = self.class.execute( command.to_s, wd, values )
52
- if rc != 0
53
- raise StandardError, "#{command.to_s} failed with error code #{rc}";
48
+ def execute( command, wd = nil, envadd = nil )
49
+ env = Hash.new
50
+ for var in vars do
51
+ env[var] = self[var]
54
52
  end
55
- rc
53
+ env.merge!( envadd ) if envadd
54
+ return self.class.execute( command.to_s, wd, env )
56
55
  end
57
56
 
58
57
  # Prepend +value+ to variable +name+. A ':' is added when necessary.
@@ -1,4 +1,5 @@
1
1
  require 'sequel'
2
+ require 'ansi'
2
3
 
3
4
  module BuildTool
4
5
 
@@ -9,6 +10,10 @@ module History
9
10
 
10
11
  module StateHelper
11
12
 
13
+ # ATTENTION
14
+ #
15
+ # Ansi::Code and Sequel don't like each other. Do not include Ansi::Code here.
16
+
12
17
  # Needed for both Module and Command History
13
18
  STARTED = 0
14
19
  CANCELED_BY_USER = 1
@@ -20,11 +25,11 @@ def state_str
20
25
  when STARTED
21
26
  "STARTED"
22
27
  when CANCELED_BY_USER
23
- "CANCELED"
28
+ ANSI::Code.red { "CANCELED" }
24
29
  when FINISHED_SUCCESSFUL
25
- "SUCCESS"
30
+ ANSI::Code.green { "SUCCESS" }
26
31
  when FINISHED_WITH_ERRORS
27
- "ERRORS"
32
+ ANSI::Code.red { "ERRORS" }
28
33
  else
29
34
  "#{self.state.to_s}?"
30
35
  end
@@ -1,6 +1,7 @@
1
- require 'ftools'
2
1
  require 'mj/tools/ssh'
3
2
 
3
+ require 'fileutils'
4
+
4
5
  module BuildTool
5
6
 
6
7
  #
@@ -233,18 +234,18 @@ def vcs
233
234
  attr_writer :vcs_configuration
234
235
  def vcs_configuration
235
236
  return @vcs_configuration if @vcs_configuration
236
- return @parent.vcs_configuration if @parent
237
+ if @parent && @parent.vcs_configuration
238
+ # puts "copying vcs for #{name} from #{@parent.name}"
239
+ vc = @parent.vcs_configuration.class.new
240
+ vc.copy_configuration( @parent.vcs_configuration )
241
+ @vcs_configuration = vc
242
+ return vc
243
+ end
237
244
  nil
238
245
  end
239
246
 
240
247
  def vcs_configuration_required
241
- if @vcs_configuration
242
- vc = @vcs_configuration
243
- elsif @parent
244
- vc = @parent.vcs_configuration
245
- else
246
- vc = nil
247
- end
248
+ vc = vcs_configuration
248
249
  if vc.nil?
249
250
  raise ConfigurationError, "No version control system configure for module #{name}."
250
251
  end
@@ -13,10 +13,15 @@ def name
13
13
  end
14
14
 
15
15
  def vcs( mod )
16
+ raise StandardError if @module and ! mod.equal?( @module )
16
17
  @module = mod
17
18
  Archive.new( self )
18
19
  end
19
20
 
21
+ def copy_configuration( other )
22
+ super
23
+ end
24
+
20
25
  end # class ArchiveConfiguration
21
26
 
22
27
  class Archive < Base
@@ -8,8 +8,8 @@ class BaseConfiguration
8
8
 
9
9
  attr_reader :module
10
10
 
11
- def initialize( mod = nil )
12
- @module = mod
11
+ def initialize
12
+ @module = nil
13
13
  end
14
14
 
15
15
  def remote_path
@@ -24,6 +24,10 @@ def local_path
24
24
  @module.source_directory
25
25
  end
26
26
 
27
+ def copy_configuration( other )
28
+ @module = nil
29
+ end
30
+
27
31
  end
28
32
 
29
33
  #
@@ -12,12 +12,13 @@ def name
12
12
 
13
13
  attr_reader :externals
14
14
 
15
- def initialize( mod = nil )
16
- super( mod )
15
+ def initialize
16
+ super
17
17
  @externals = {}
18
18
  end
19
19
 
20
20
  def vcs( mod )
21
+ raise StandardError if @module and ! mod.equal?( @module )
21
22
  @module = mod
22
23
  GitSvn.new( self )
23
24
  end
@@ -26,6 +27,11 @@ def add_external( local, target )
26
27
  @externals[local] = target
27
28
  end
28
29
 
30
+ def copy_configuration( other )
31
+ super
32
+ @externals = {} # Do not copy the externals
33
+ end
34
+
29
35
  end
30
36
 
31
37
  #
@@ -13,12 +13,13 @@ def name
13
13
 
14
14
  attr_accessor :remote
15
15
 
16
- def initialize( mod = nil )
17
- super( mod )
16
+ def initialize
17
+ super
18
18
  @remote = {}
19
19
  end
20
20
 
21
21
  def vcs( mod )
22
+ raise StandardError if @module and ! mod.equal?( @module )
22
23
  @module = mod
23
24
  Git.new( self )
24
25
  end
@@ -39,6 +40,10 @@ def track_branch
39
40
  return rc[1..-1].join( '/' )
40
41
  end
41
42
 
43
+ def copy_configuration( other )
44
+ super
45
+ @remote = {} # Do not copy the remotes
46
+ end
42
47
 
43
48
  end
44
49
 
@@ -137,7 +142,7 @@ def fetch()
137
142
  if !checkedout? and !$noop
138
143
  clone
139
144
  end
140
- cmd = "fetch -q #{config.track_remote}"
145
+ cmd = "fetch -q --prune #{config.track_remote}"
141
146
  if ( rc = git( cmd ) ) != 0
142
147
  raise GitError, "Error while fetching: #{rc}"
143
148
  end
@@ -19,6 +19,7 @@ def initialize( mod = nil )
19
19
  end
20
20
 
21
21
  def vcs( mod )
22
+ raise StandardError if @module and ! mod.equal?( @module )
22
23
  @module = mod
23
24
  Mercurial.new( self )
24
25
  end
@@ -26,6 +27,11 @@ def vcs( mod )
26
27
  def branch
27
28
  self.module.remote_path
28
29
  end
30
+
31
+ def copy_configuration( other )
32
+ super
33
+ @remote = {} # Do not copy the remote
34
+ end
29
35
  end
30
36
 
31
37
  #
@@ -14,6 +14,7 @@ def name
14
14
  end
15
15
 
16
16
  def vcs( mod )
17
+ raise StandardError if @module and ! mod.equal?( @module )
17
18
  @module = mod
18
19
  Svn.new( self )
19
20
  end
@@ -24,6 +25,10 @@ def only=( list )
24
25
  puts @only.inspect
25
26
  end
26
27
 
28
+ def copy_configuration( other )
29
+ super
30
+ @only = nil # Do not copy nil
31
+ end
27
32
  end
28
33
 
29
34
  #
@@ -20,15 +20,25 @@ def execute( command, wd = ENV["HOME"], env = nil )
20
20
  begin
21
21
  while
22
22
  line = f.readline
23
- logger.verbose line.chomp
23
+ if line.start_with?( "error:" )
24
+ logger.error line.chomp
25
+ elsif line.start_with?( "warning:" )
26
+ logger.warn line.chomp
27
+ elsif line.start_with?( "trace:" )
28
+ logger.trace line.chomp
29
+ elsif line.start_with?( "info:" )
30
+ logger.info line.chomp
31
+ else
32
+ logger.verbose line.chomp
33
+ end
24
34
  yield line.chomp if block_given?
25
35
  end
26
- rescue EOFError:
36
+ rescue EOFError
27
37
  # Expected. Do nothing
28
38
  end
29
39
  }
30
40
  if $?.coredump? or $?.signaled?
31
- raise CoreDumpError, "Command '#{command}' core dumped because of signal #{$?.termsig}!";
41
+ raise CoreDumpError, "Command '#{command}' core dumped because of signal #{$?.termsig}!"
32
42
  end
33
43
  logger.trace "= #{$?.exitstatus}"
34
44
  return $?.exitstatus
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build-tool
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 0
10
- version: 0.4.0
9
+ - 1
10
+ version: 0.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Jansen
@@ -36,7 +36,7 @@ cert_chain:
36
36
  M3zOaQdtTmiQPBqNIsE=
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2010-08-15 00:00:00 +02:00
39
+ date: 2010-12-12 00:00:00 +01:00
40
40
  default_executable:
41
41
  dependencies:
42
42
  - !ruby/object:Gem::Dependency
@@ -206,6 +206,7 @@ email:
206
206
  - info@michael-jansen.biz
207
207
  executables:
208
208
  - build-tool
209
+ - build-tool-1.9
209
210
  extensions: []
210
211
 
211
212
  extra_rdoc_files:
@@ -220,6 +221,7 @@ files:
220
221
  - README.txt
221
222
  - Rakefile
222
223
  - bin/build-tool
224
+ - bin/build-tool-1.9
223
225
  - db/migrations/001_command_histories.rb
224
226
  - db/migrations/002_module_events.rb
225
227
  - db/migrations/003_command_histories_add_logfile.rb
metadata.gz.sig CHANGED
@@ -1 +1,2 @@
1
- *�3䎼X�?$�/��8�;!A���"sN3qv��_6 g���䭤�.~9H����������?���W�Z�"����ka�X�{���E!��o;��Gû�����{�!�;p��?�KhT��q�Շjjw�uBD�|� ˲"Jm�I?�eL�=�Vf��J H8TT�w��W.�}��2ɦ�kR �����Ƣ�Q��Y��)X t��tƳ �~�kK Ef��b��y[}ci���� �!~��W�18�
1
+ ��^ r1Bzz)VW�I`2XHeI>PYy�2���
2
+ NV+j|d��a(�3[:���zx�aUf!��k�+ei2�Y��\C.MPگ�m��8��k]x��6�[5�#^H����-�&�VWX��]X��., �e�����E p�<������K/�&���#���4�8+N��xML���m�aD�E�G�`|+���a�VCN�