yggdrasil 0.0.6 → 0.0.7

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.
@@ -131,8 +131,10 @@ usage: #@base_cmd init-server [OPTIONS...]
131
131
  Valid options:
132
132
  --port ARG : specify a TCP port number ARG
133
133
  --repo ARG : URL of subversion repository
134
- ARG could be include {HOST} and it replace by client hostname
135
- e.g. svn://192.168.3.5/servers/{HOST}/ygg
134
+ ARG can contain {HOST} or a {host}
135
+ {HOST} is replaced by client hostname with domain
136
+ {host} is replaced by client hostname without domain
137
+ e.g. svn://192.168.3.5/servers/{host}/ygg
136
138
  --ro-username ARG : specify a username ARG for read only
137
139
  --ro-password ARG : specify a password ARG for read only
138
140
 
@@ -31,6 +31,7 @@ class Yggdrasil
31
31
  @options[:repo].chomp!
32
32
  @options[:repo].chomp!('/')
33
33
  @options[:repo].gsub!(/\{HOST\}/, Socket.gethostname)
34
+ @options[:repo].gsub!(/\{host\}/, Socket.gethostname.split('.')[0])
34
35
  if @options[:repo] == "private"
35
36
  Dir.mkdir @config_dir, 0755 unless File.exist?(@config_dir)
36
37
  repo_dir = "#@config_dir/private_repo"
@@ -1,5 +1,5 @@
1
1
  class Yggdrasil
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
 
4
4
  def version
5
5
  puts <<"EOS"
@@ -10,21 +10,25 @@ class YggdrasilServer
10
10
 
11
11
  return unless File.exist?(@results_dir)
12
12
  files = Dir.entries(@results_dir)
13
+ alert = false
13
14
  files.each do |file|
14
15
  next if /^\./ =~ file
15
16
  absolute = "#@results_dir/#{file}"
16
17
  if @options.has_key?(:limit)
17
18
  stat = File.stat(absolute)
18
19
  if stat.mtime < (Time.now - @options[:limit].to_i * 60)
19
- puts "######## #{file} TOO OLD: #{stat.mtime.to_s}"
20
+ alert = true
21
+ puts "######## #{file}: last check is too old: #{stat.mtime.to_s}"
20
22
  next
21
23
  end
22
24
  end
23
25
  buf = File.read("#@results_dir/#{file}")
24
26
  if buf.gsub(/\s*\n/m, '') != ''
27
+ alert = true
25
28
  puts "######## #{file} Mismatch:"
26
29
  puts buf
27
30
  end
28
31
  end
32
+ exit 1 if alert
29
33
  end
30
34
  end
data/spec/help_spec.rb CHANGED
@@ -306,8 +306,10 @@ usage: #{File.basename($0)} init-server [OPTIONS...]
306
306
  Valid options:
307
307
  --port ARG : specify a TCP port number ARG
308
308
  --repo ARG : URL of subversion repository
309
- ARG could be include {HOST} and it replace by client hostname
310
- e.g. svn://192.168.3.5/servers/{HOST}/ygg
309
+ ARG can contain {HOST} or a {host}
310
+ {HOST} is replaced by client hostname with domain
311
+ {host} is replaced by client hostname without domain
312
+ e.g. svn://192.168.3.5/servers/{host}/ygg
311
313
  --ro-username ARG : specify a username ARG for read only
312
314
  --ro-password ARG : specify a password ARG for read only
313
315
 
data/spec/results_spec.rb CHANGED
@@ -25,34 +25,56 @@ describe Yggdrasil, "results" do
25
25
  Yggdrasil.command %w{server --debug}
26
26
  end
27
27
  sleep 1
28
+ end
29
+
30
+ it 'should show nothing if no change' do
28
31
  Yggdrasil.command %w{init --debug --server localhost:4000} +
29
32
  %w{--username hoge --password foo},
30
33
  "Y\nhoge\nfoo\n"
31
34
  `rm -f /tmp/yggdrasil-test/.yggdrasil/checker/gem_list`
35
+
36
+ `echo hoge > /tmp/yggdrasil-test/A`
37
+ Yggdrasil.command %w{add /tmp/yggdrasil-test/A}
38
+ Yggdrasil.command %w{check}
39
+ Yggdrasil.command %w{commit -m '1st' --username hoge --password foo /},
40
+ "Y\n"
41
+
32
42
  Yggdrasil.command %w{check}
33
43
  sleep 1
44
+ out = catch_out do
45
+ Yggdrasil.command %w{results --limit 30}
46
+ end
47
+ out.should == ""
34
48
  end
35
49
 
36
50
  it 'should show results' do
37
51
  puts '---- should show results'
38
52
 
53
+ `echo foo >> /tmp/yggdrasil-test/A`
54
+ Yggdrasil.command %w{check}
55
+
39
56
  `echo hoge > /tmp/yggdrasil-test/.yggdrasil/results/hoge-old`
40
57
  File.utime Time.local(2001, 5, 22, 23, 59, 59),
41
58
  Time.local(2001, 5, 1, 0, 0, 0),
42
59
  "/tmp/yggdrasil-test/.yggdrasil/results/hoge-old"
60
+ sleep 1
43
61
 
44
62
  out = catch_out do
45
- Yggdrasil.command %w{results --limit 30}
63
+ lambda{Yggdrasil.command(%w{results --limit 30})}.should raise_error(SystemExit)
46
64
  end
47
65
 
48
66
  out.should == <<"EOS"
49
- ######## hoge-old TOO OLD: 2001-05-01 00:00:00 +0900
67
+ ######## hoge-old: last check is too old: 2001-05-01 00:00:00 +0900
50
68
  ######## centos6_127.0.0.1 Mismatch:
51
- A 0 tmp/yggdrasil-test
52
- A 0 tmp/yggdrasil-test/.yggdrasil
53
- A 0 tmp/yggdrasil-test/.yggdrasil/checker_result
54
- A 0 tmp
69
+ M 2 tmp/yggdrasil-test/A
55
70
 
71
+ Index: tmp/yggdrasil-test/A
72
+ ===================================================================
73
+ --- tmp/yggdrasil-test/A (revision 2)
74
+ +++ tmp/yggdrasil-test/A (working copy)
75
+ @@ -1 +1,2 @@
76
+ hoge
77
+ +foo
56
78
  EOS
57
79
  end
58
80
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yggdrasil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-03 00:00:00.000000000 Z
12
+ date: 2013-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -110,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  segments:
112
112
  - 0
113
- hash: -3274723067433011809
113
+ hash: 1646321919012648459
114
114
  required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  none: false
116
116
  requirements:
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  version: '0'
120
120
  segments:
121
121
  - 0
122
- hash: -3274723067433011809
122
+ hash: 1646321919012648459
123
123
  requirements: []
124
124
  rubyforge_project:
125
125
  rubygems_version: 1.8.25