metaverse 0.1.8.5 → 0.1.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86d2e75dc1394345af03324e91e1d9e314860221
4
- data.tar.gz: 2fda511ed66e095df3f476af10c87011be868617
3
+ metadata.gz: 3e05af7356cbdcb5593e140a14bb0729bce9f58d
4
+ data.tar.gz: fdf0413fff4d96a459ddf57150a4d40ab42215bf
5
5
  SHA512:
6
- metadata.gz: fda6270756829036d172d9b219b74de58f3ae4c5da514c4532043b4c86f6bad71b5e45a8885a92483e49e10232890b4c2e6fa16e285d33c782190f47db6e1fa1
7
- data.tar.gz: 11e3fc0ae3c9ac12d2a533eeebca2933d053215ba82d0503fae7e0ea0be4330af20a74f3051c63049a064199e33ec5256f32f1dd66e6f8106e096d9a0a4d1529
6
+ metadata.gz: c2f73d9bf92d9e66e966a4170487644b8512396115fd40b8939b71d8b05364de1c7707dfcead2a6a0d5c7811307b616c032fc6988c651580a20bf00611012c35
7
+ data.tar.gz: c9ccc42a19f3a9fe5617a3d2bf156883f1c7946539814be2813dcb2eb05c779c4af702090a228eb9b313180f5aac1f7b92eca5446543f04ccdaa338f96f5c582
@@ -23,6 +23,7 @@ module Metaverse
23
23
 
24
24
  def status
25
25
  check_dirtiness
26
+ check_consistency
26
27
  end
27
28
 
28
29
 
@@ -40,7 +41,7 @@ module Metaverse
40
41
  }
41
42
  }
42
43
 
43
- if check_dirtiness
44
+ if check_dirtiness and check_consistency
44
45
  actions = @repos.map {|repo|
45
46
  puts "\n # #{repo.name}".blue
46
47
  Transacted::Action.new action_options.call(repo)
@@ -61,7 +62,7 @@ module Metaverse
61
62
  puts "\n # #{repo.name}".blue
62
63
  repo.create_state prefix, state
63
64
  repo.checkout "#{prefix}/#{state}" if not prefix == "snapshot"
64
- } if check_dirtiness
65
+ } if check_dirtiness and check_consistency
65
66
  end
66
67
 
67
68
 
@@ -74,12 +75,13 @@ module Metaverse
74
75
  },
75
76
  down: -> {
76
77
  puts "\n # Rolling back in #{repo.name}".blue
77
- puts repo.checkout repo.pop_previous_branch
78
+ repo.checkout repo.peek_previous_branch
79
+ repo.delete_branch repo.pop_previous_branch if should_create_branch
78
80
  }
79
81
  }
80
82
  }
81
83
 
82
- if check_dirtiness
84
+ if check_dirtiness and check_consistency
83
85
 
84
86
  actions = @repos.map { |repo|
85
87
  Transacted::Action.new action_options.call repo
@@ -99,8 +101,8 @@ module Metaverse
99
101
  @repos.each { |repo|
100
102
  puts "\n # #{repo.name}".blue
101
103
  is_branch = repo.current_branch.match /refs\/heads\/(.*)/
102
- repo.send_state prefix, state, remote, !!is_branch, should_clean
103
- } if check_dirtiness
104
+ repo.send_state prefix, state, remote, should_clean
105
+ } if check_dirtiness and check_consistency
104
106
  end
105
107
 
106
108
 
@@ -108,7 +110,7 @@ module Metaverse
108
110
  @repos.each { |repo|
109
111
  puts "\n # #{repo.name}".blue
110
112
  repo.update remote
111
- } if check_dirtiness
113
+ } if check_dirtiness and check_consistency
112
114
  end
113
115
 
114
116
 
@@ -138,6 +140,20 @@ module Metaverse
138
140
  dirty_repos.length == 0
139
141
  end
140
142
 
143
+ def check_consistency
144
+ branch_name = system_state.first
145
+ inconsistent_repos = @repos.reject { |repo|
146
+ repo.current_branch == branch_name
147
+ }.map &:name
148
+
149
+ if inconsistent_repos.length == 0
150
+ puts 'The system is consistent'.green
151
+ else
152
+ puts 'The system is inconsistent. Please check the following repos :'.red , inconsistent_repos
153
+ end
154
+ inconsistent_repos.length == 0
155
+ end
156
+
141
157
  def read_config path
142
158
  Errors::config_not_found! if not File.exist? path
143
159
 
@@ -170,7 +186,7 @@ module Metaverse
170
186
  @repos.each { |repo|
171
187
  puts "\n # #{repo.name}".blue
172
188
  repo.pull @origin_remote
173
- } if check_dirtiness
189
+ } if check_dirtiness and check_consistency
174
190
  end
175
191
 
176
192
  def add_remote name, base_url
data/lib/metaverse/cli.rb CHANGED
@@ -98,6 +98,7 @@ module Metaverse
98
98
  init
99
99
  case command
100
100
  when 'dirtiness' then @meta.check_dirtiness
101
+ when 'consistency' then @meta.check_consistency
101
102
  end
102
103
  end
103
104
 
@@ -127,7 +127,7 @@ module Metaverse
127
127
  end
128
128
 
129
129
 
130
- def send_state prefix, state, remote, is_branch, should_clean = false
130
+ def send_state prefix, state, remote, should_clean = false
131
131
  refs = ["refs/meta/local/#{prefix}/#{state}"]
132
132
  branch_name = "#{prefix}/#{state}"
133
133
  branch = @repo.branches[branch_name]
@@ -143,7 +143,7 @@ module Metaverse
143
143
  return false
144
144
  end
145
145
 
146
- if (not prefix == 'snapshot') and is_branch and ahead_of_develop? branch
146
+ if (not prefix == 'snapshot') and ahead_of_develop? branch
147
147
  refs << branch_name
148
148
  update_ref refs[0], @repo.branches[branch_name]
149
149
  end
@@ -166,6 +166,12 @@ module Metaverse
166
166
  changed
167
167
  end
168
168
 
169
+ def delete_branch branch
170
+ if not @repo.branches[branch].nil?
171
+ @repo.branches.delete branch
172
+ end
173
+ end
174
+
169
175
  def dirty?
170
176
  is_dirty = false
171
177
  @repo.status { |file, data|
@@ -177,7 +183,7 @@ module Metaverse
177
183
 
178
184
 
179
185
  def update remote = nil
180
- if @repo.remotes[remote].nil?
186
+ if not remote.nil? and @repo.remotes[remote].nil?
181
187
  return Errors::remote_not_found remote
182
188
  end
183
189
  Dir.chdir(@repo.workdir) do
@@ -1,3 +1,3 @@
1
1
  module Metaverse
2
- VERSION = "0.1.8.5"
2
+ VERSION = "0.1.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metaverse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8.5
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Omar Kamali
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-06 00:00:00.000000000 Z
11
+ date: 2015-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler