takelage 0.11.1 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35adfe10263c8d04bf974bc0221c7ca79aea9a1586a0d14c67d13511103e8a3f
4
- data.tar.gz: d80c8aea0868c5f3938fcd60f3a6e29606500d5b0d5b0170ad32b0d33c611dbe
3
+ metadata.gz: c97cc9d492c1532db93e5090ebf54357a46bf74ffa17f9ad55ad90d8a4595032
4
+ data.tar.gz: 59bca9e854ffe6441cfb80abf847c97b16390b86fef6c74d13aa6a6adfd5b66d
5
5
  SHA512:
6
- metadata.gz: 5505234c2a2593280737aac1cdc3b61df9efb95396ebc47b79d04bc06e0d43387b49cd21933b045e826bced9f8392ff21758dcfa710b69992b8e78973e78ac76
7
- data.tar.gz: 31c1429cff565b47be885d75b940420777b1d04035db179c15b15a2d1274533107db078e60ab26d0cd3f1a1c462d19180c779fb445d1eaac8462e686d69b898b
6
+ metadata.gz: ce47bc65c2f5c45685eafb643b30461562d3c24993378332f9d45a9fb590f106dab71d090ac4180ee5ac7fadb1574cd70e44ec37023cdcee275a9dd455ccd5ad
7
+ data.tar.gz: 217ac20d55861f557a4df55304f0888fa7bb58a773400f912405d0c48c9aee5db0cf300fa0da3187d19de513ea7ea13169daa57c7676ff1bc41985db817ce299
@@ -5,17 +5,7 @@ module BitClipboardModule
5
5
  def bit_clipboard_copy(dir, scope)
6
6
  log.debug "Running bit copy \"#{dir}\" to \"#{scope}\""
7
7
 
8
- unless bit_check_workspace
9
- log.error 'No bit workspace'
10
- return false
11
- end
12
-
13
- if git_check_workspace
14
- unless git_check_master
15
- log.error 'Not on git master branch'
16
- return false
17
- end
18
- end
8
+ return false unless _prepare_workspace
19
9
 
20
10
  if File.directory? dir
21
11
 
@@ -105,6 +95,7 @@ module BitClipboardModule
105
95
  run cmd_bit_export_to_scope
106
96
 
107
97
  _remove_bit_artifacts
98
+ _sync_workspace
108
99
 
109
100
  log.info "Copied directory \"#{dir}\" " +
110
101
  "as bit component \"#{id}\" " +
@@ -116,17 +107,7 @@ module BitClipboardModule
116
107
  def bit_clipboard_paste(cid, dir)
117
108
  log.debug "Running bit paste \"#{cid}\" to \"#{dir}\""
118
109
 
119
- unless bit_check_workspace
120
- log.error 'No bit workspace'
121
- return false
122
- end
123
-
124
- if git_check_workspace
125
- unless git_check_master
126
- log.error 'Not on git master branch'
127
- return false
128
- end
129
- end
110
+ return false unless _prepare_workspace
130
111
 
131
112
  scope = cid.scan(/([^\/]*).*/).first.first
132
113
 
@@ -156,6 +137,7 @@ module BitClipboardModule
156
137
 
157
138
  _handle_bitignore
158
139
  _remove_bit_artifacts
140
+ _sync_workspace
159
141
 
160
142
  log.info "Pasted bit component \"#{cid}\" " +
161
143
  "to directory \"#{dir}\""
@@ -166,17 +148,7 @@ module BitClipboardModule
166
148
  def bit_clipboard_pull
167
149
  log.debug "Running bit pull"
168
150
 
169
- unless bit_check_workspace
170
- log.error 'No bit workspace'
171
- return false
172
- end
173
-
174
- if git_check_workspace
175
- unless git_check_master
176
- log.error 'Not on git master branch'
177
- return false
178
- end
179
- end
151
+ return false unless _prepare_workspace
180
152
 
181
153
  # import components into workspace
182
154
  cmd_bit_import_all =
@@ -192,6 +164,7 @@ module BitClipboardModule
192
164
 
193
165
  _handle_bitignore
194
166
  _remove_bit_artifacts
167
+ _sync_workspace
195
168
 
196
169
  log.info "Pulled bit components"
197
170
  true
@@ -201,17 +174,7 @@ module BitClipboardModule
201
174
  def bit_clipboard_push
202
175
  log.debug "Running bit push"
203
176
 
204
- unless bit_check_workspace
205
- log.error 'No bit workspace'
206
- return false
207
- end
208
-
209
- if git_check_workspace
210
- unless git_check_master
211
- log.error 'Not on git master branch'
212
- return false
213
- end
214
- end
177
+ return false unless _prepare_workspace
215
178
 
216
179
  # tag all components
217
180
  cmd_bit_tag_all =
@@ -226,6 +189,7 @@ module BitClipboardModule
226
189
  run cmd_bit_export_all
227
190
 
228
191
  _remove_bit_artifacts
192
+ _sync_workspace
229
193
 
230
194
  log.info "Pushed bit components"
231
195
  true
@@ -279,29 +243,89 @@ module BitClipboardModule
279
243
  id
280
244
  end
281
245
 
246
+ # Prepare workspace for bit clipboard.
247
+ def _prepare_workspace
248
+ unless bit_check_workspace
249
+ log.error 'No bit workspace'
250
+ return false
251
+ end
252
+
253
+ if git_check_workspace
254
+
255
+ unless git_check_master
256
+ log.error 'Not on git master branch'
257
+ return false
258
+ end
259
+
260
+ unless git_check_clean
261
+ log.error 'No clean git workspace'
262
+ return false
263
+ end
264
+
265
+ log.debug "Updating git workspace"
266
+ cmd_bit_clipboard_git_pull =
267
+ config.active['cmd_bit_clipboard_git_pull']
268
+
269
+ result_git_pull = try cmd_bit_clipboard_git_pull
270
+
271
+ unless result_git_pull
272
+ log.error "Unable to update git workspace"
273
+ return false
274
+ end
275
+
276
+ end
277
+
278
+ true
279
+ end
280
+
282
281
  # Remove bit artifacts.
283
282
  def _remove_bit_artifacts
284
283
  log.debug "Removing bit artifacts"
285
284
 
286
- _remove_node_modules
287
- _remove_index_bit
288
- _remove_package_json
289
- end
290
-
291
- # Remove node_modules directory.
292
- def _remove_node_modules
285
+ # Remove node_modules directory.
293
286
  FileUtils.remove_entry_secure('node_modules', force: true)
294
- end
295
287
 
296
- # Remove index.bit files recursively.
297
- def _remove_index_bit
288
+ # Remove index.bit files recursively.
298
289
  Dir.glob("./**/index.bit").each do |file|
299
290
  FileUtils.remove_entry_secure(file, force: true)
300
291
  end
301
- end
302
292
 
303
- # Remove package.json file.
304
- def _remove_package_json
293
+ # Remove package.json file.
305
294
  FileUtils.remove_entry_secure('package.json', force: true)
306
295
  end
296
+
297
+ # Sync workspace with upstream.
298
+ def _sync_workspace
299
+ log.debug "Syncing git workspace"
300
+
301
+ rakefile, path = Rake.application.find_rakefile_location
302
+ bitmap = "#{path}/.bitmap"
303
+
304
+ log.debug "Adding \"#{bitmap}\" to git"
305
+
306
+ cmd_bit_clipboard_git_add =
307
+ config.active['cmd_bit_clipboard_git_add'] % {
308
+ file: bitmap
309
+ }
310
+
311
+ run cmd_bit_clipboard_git_add
312
+
313
+ message = "Update .bitmap"
314
+
315
+ log.debug "Committing \"#{bitmap}\" to git"
316
+
317
+ cmd_bit_clipboard_git_commit =
318
+ config.active['cmd_bit_clipboard_git_commit'] % {
319
+ message: message
320
+ }
321
+
322
+ run cmd_bit_clipboard_git_commit
323
+
324
+ log.debug "Pushing master branch to origin"
325
+
326
+ cmd_bit_clipboard_git_push =
327
+ config.active['cmd_bit_clipboard_git_push']
328
+
329
+ run cmd_bit_clipboard_git_push
330
+ end
307
331
  end
@@ -10,6 +10,10 @@ cmd_bit_clipboard_copy_bit_list_remotes: 'bit remote --skip-update'
10
10
  cmd_bit_clipboard_copy_bit_add_dir: 'bit add --skip-update --id %{id} --main %{dir}/README.bit %{dir}'
11
11
  cmd_bit_clipboard_copy_bit_tag_id: 'bit tag --skip-update --skip-tests %{id}'
12
12
  cmd_bit_clipboard_copy_bit_export_to_scope: 'bit export --skip-update %{scope}'
13
+ cmd_bit_clipboard_git_add: 'git add %{file}'
14
+ cmd_bit_clipboard_git_commit: 'git commit --message="%{message}"'
15
+ cmd_bit_clipboard_git_pull: 'git pull origin master'
16
+ cmd_bit_clipboard_git_push: 'git push origin master'
13
17
  cmd_bit_clipboard_paste_bit_list_scope: 'bit list --skip-update --json %{scope}'
14
18
  cmd_bit_clipboard_paste_bit_import_cid: 'bit import --ignore-package-json --ignore-dist --skip-update --path %{dir} %{cid}'
15
19
  cmd_bit_clipboard_pull_bit_import_all: 'bit import --ignore-package-json --ignore-dist --skip-update'
@@ -10,7 +10,10 @@ module DockerContainerModule
10
10
  docker_socket_start
11
11
 
12
12
  _create_network @hostname unless docker_container_check_network @hostname
13
- _create_container @hostname unless docker_container_check_existing @hostname
13
+
14
+ container_created = true
15
+ container_created = _create_container @hostname unless docker_container_check_existing @hostname
16
+ return false unless container_created
14
17
  _run_command_in_container @hostname, command
15
18
  end
16
19
 
@@ -21,7 +24,10 @@ module DockerContainerModule
21
24
  return false unless docker_check_running
22
25
 
23
26
  _create_network @hostname unless docker_container_check_network @hostname
24
- _create_container @hostname unless docker_container_check_existing @hostname
27
+
28
+ container_created = true
29
+ container_created = _create_container @hostname unless docker_container_check_existing @hostname
30
+ return false unless container_created
25
31
  end
26
32
 
27
33
  # Backend method for docker container login.
@@ -34,15 +40,19 @@ module DockerContainerModule
34
40
  outdated = docker_image_check_outdated @docker_tag
35
41
  if outdated
36
42
  tag_latest_remote = docker_image_tag_latest_remote
37
- say "Your takelage version \"#{@docker_tag}\" is outdated"
38
- say "A new takelage version \"#{tag_latest_remote}\" is available"
43
+ log.warn "#{@docker_user}/#{@docker_repo}:#{@docker_tag} is outdated"
44
+ log.warn "#{@docker_user}/#{@docker_repo}:#{tag_latest_remote} is available"
39
45
  end
40
46
  end
41
47
 
42
48
  docker_socket_start
43
49
 
44
50
  _create_network @hostname unless docker_container_check_network @hostname
45
- _create_container @hostname unless docker_container_check_existing @hostname
51
+
52
+ container_created = true
53
+ container_created = _create_container @hostname unless docker_container_check_existing @hostname
54
+ return false unless container_created
55
+
46
56
  _enter_container @hostname
47
57
  end
48
58
 
@@ -52,6 +62,12 @@ module DockerContainerModule
52
62
 
53
63
  return false unless docker_check_running
54
64
 
65
+ if ENV['HOSTNAME'].start_with? "#{@docker_repo}_"
66
+ log.error "Please run \"tau nuke\" outside of #{@docker_repo} containers"
67
+ log.info "Run \"tau purge\" to remove orphaned #{@docker_repo} containers"
68
+ return false
69
+ end
70
+
55
71
  networks = []
56
72
 
57
73
  _get_containers.each do |container|
@@ -90,17 +106,16 @@ module DockerContainerModule
90
106
  def _create_container(container)
91
107
  log.debug "Creating container \"#{container}\""
92
108
 
93
- if docker_image_tag_list_local.include? @docker_tag
94
- tag = @docker_tag
95
- else
96
- tag = docker_image_tag_latest_local
97
- end
109
+ image = "#{@docker_user}/#{@docker_repo}:#{@docker_tag}"
98
110
 
99
- image = "#{@docker_user}/#{@docker_repo}:#{tag}"
111
+ unless docker_image_tag_list_local.include? @docker_tag
112
+ log.error "No local image \"#{image}\" available"
113
+ return false
114
+ end
100
115
 
101
116
  log.debug "Using docker image \"#{image}\""
102
117
 
103
- unless docker_image_tag_check_local tag
118
+ unless docker_image_tag_check_local @docker_tag
104
119
  log.error "Image \"#{image}\" does not exist"
105
120
  return false
106
121
  end
@@ -134,6 +149,7 @@ module DockerContainerModule
134
149
  }
135
150
 
136
151
  run cmd_docker_create
152
+ true
137
153
  end
138
154
 
139
155
  # Create docker network.
@@ -47,7 +47,7 @@ module DockerImageTagCheckModule
47
47
 
48
48
  tags = docker_image_tag_list_remote
49
49
 
50
- unless tags.include? tag
50
+ unless tags != false and tags.include? tag
51
51
  log.debug "No remote docker image \"#{image}\" found"
52
52
  return false
53
53
  end
@@ -26,7 +26,7 @@ module DockerImageTagLatestModule
26
26
 
27
27
  tags = docker_image_tag_list_remote
28
28
 
29
- if tags.nil?
29
+ if tags == false or tags.nil?
30
30
  log.warn "No latest docker remote tag"
31
31
  return ''
32
32
  end
@@ -26,13 +26,14 @@ module DockerImageTagListModule
26
26
  "of \"#{@docker_user}/#{@docker_repo}\" " +
27
27
  "from \"#{@docker_registry}\""
28
28
 
29
- registry = DockerRegistry2.connect(@docker_registry)
30
-
31
- log.debug ("Connected to registry \"#{@docker_registry}\"")
32
-
33
29
  user = File.basename @docker_user
34
-
35
- tags = registry.tags("#{user}/#{@docker_repo}")
30
+ begin
31
+ registry = DockerRegistry2.connect(@docker_registry)
32
+ tags = registry.tags("#{user}/#{@docker_repo}")
33
+ rescue RestClient::Exceptions::OpenTimeout
34
+ log.error "Timeout while connecting to \"#{@docker_registry}\""
35
+ return false
36
+ end
36
37
 
37
38
  VersionSorter.sort(tags['tags'])
38
39
  end
data/lib/takelage/version CHANGED
@@ -1 +1 @@
1
- 0.11.1
1
+ 0.12.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takelage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geospin