takeltau 0.34.14 → 0.35.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -27
- data/lib/takeltau/completion/cli.rb +1 -1
- data/lib/takeltau/default.yml +10 -35
- data/lib/takeltau/docker/check/cli.rb +1 -1
- data/lib/takeltau/docker/check/daemon.rb +1 -1
- data/lib/takeltau/docker/cli.rb +1 -1
- data/lib/takeltau/docker/container/check/cli.rb +1 -1
- data/lib/takeltau/docker/container/check/existing.rb +1 -1
- data/lib/takeltau/docker/container/check/network.rb +1 -1
- data/lib/takeltau/docker/container/check/orphaned.rb +1 -1
- data/lib/takeltau/docker/container/clean.rb +1 -1
- data/lib/takeltau/docker/container/cli.rb +1 -1
- data/lib/takeltau/docker/container/command.rb +1 -1
- data/lib/takeltau/docker/container/daemon.rb +1 -1
- data/lib/takeltau/docker/container/lib.rb +1 -1
- data/lib/takeltau/docker/container/login.rb +1 -1
- data/lib/takeltau/docker/container/prune.rb +1 -1
- data/lib/takeltau/docker/image/cli.rb +1 -1
- data/lib/takeltau/docker/image/tag/check.rb +1 -1
- data/lib/takeltau/docker/image/tag/cli.rb +1 -1
- data/lib/takeltau/docker/image/tag/latest.rb +1 -1
- data/lib/takeltau/docker/image/tag/list.rb +1 -1
- data/lib/takeltau/docker/image/update.rb +1 -1
- data/lib/takeltau/git/check/clean.rb +1 -1
- data/lib/takeltau/git/check/cli.rb +14 -14
- data/lib/takeltau/git/check/hg.rb +26 -0
- data/lib/takeltau/git/check/workspace.rb +1 -1
- data/lib/takeltau/git/cli.rb +1 -1
- data/lib/takeltau/git/lib.rb +80 -0
- data/lib/takeltau/hg/cli.rb +56 -0
- data/lib/takeltau/hg/export.rb +18 -0
- data/lib/takeltau/hg/pull.rb +43 -0
- data/lib/takeltau/hg/push.rb +42 -0
- data/lib/takeltau/info/cli.rb +1 -1
- data/lib/takeltau/info/project/cli.rb +1 -1
- data/lib/takeltau/info/status/bar.rb +1 -1
- data/lib/takeltau/info/status/cli.rb +1 -1
- data/lib/takeltau/info/status/git.rb +1 -1
- data/lib/takeltau/info/status/gopass.rb +1 -1
- data/lib/takeltau/info/status/gpg.rb +1 -1
- data/lib/takeltau/info/status/lib.rb +1 -1
- data/lib/takeltau/info/status/ssh.rb +1 -1
- data/lib/takeltau/init/lib.rb +9 -28
- data/lib/takeltau/init/packer/cli.rb +4 -14
- data/lib/takeltau/init/packer/docker.rb +2 -5
- data/lib/takeltau/init/packer/templates/hgclone.tt +8 -0
- data/lib/takeltau/init/takelage/cli.rb +4 -14
- data/lib/takeltau/init/takelage/rake.rb +2 -5
- data/lib/takeltau/init/takelage/templates/hgclone.tt +2 -0
- data/lib/takeltau/lib/config.rb +2 -2
- data/lib/takeltau/lib/logging.rb +2 -2
- data/lib/takeltau/lib/project.rb +2 -2
- data/lib/takeltau/mutagen/check/cli.rb +1 -1
- data/lib/takeltau/mutagen/check/daemon.rb +1 -1
- data/lib/takeltau/mutagen/cli.rb +1 -1
- data/lib/takeltau/mutagen/socket/check.rb +1 -1
- data/lib/takeltau/mutagen/socket/cli.rb +1 -1
- data/lib/takeltau/mutagen/socket/create.rb +1 -1
- data/lib/takeltau/mutagen/socket/list.rb +1 -1
- data/lib/takeltau/mutagen/socket/terminate.rb +1 -1
- data/lib/takeltau/mutagen/socket/tidy.rb +1 -1
- data/lib/takeltau/self/cli.rb +1 -1
- data/lib/takeltau/self/config/cli.rb +1 -1
- data/lib/takeltau/self/list.rb +1 -1
- data/lib/takeltau/version +1 -1
- data/lib/takeltau.rb +37 -62
- metadata +9 -22
- data/lib/takeltau/bit/check/cli.rb +0 -23
- data/lib/takeltau/bit/check/workspace.rb +0 -37
- data/lib/takeltau/bit/cli.rb +0 -18
- data/lib/takeltau/bit/clipboard/cli.rb +0 -73
- data/lib/takeltau/bit/clipboard/copy.rb +0 -142
- data/lib/takeltau/bit/clipboard/lib.rb +0 -143
- data/lib/takeltau/bit/clipboard/paste.rb +0 -60
- data/lib/takeltau/bit/clipboard/pull.rb +0 -37
- data/lib/takeltau/bit/clipboard/push.rb +0 -37
- data/lib/takeltau/bit/require/cli.rb +0 -57
- data/lib/takeltau/bit/require/export.rb +0 -34
- data/lib/takeltau/bit/require/import.rb +0 -133
- data/lib/takeltau/bit/require/lib.rb +0 -19
- data/lib/takeltau/bit/scope/add.rb +0 -55
- data/lib/takeltau/bit/scope/cli.rb +0 -74
- data/lib/takeltau/bit/scope/list.rb +0 -41
- data/lib/takeltau/bit/scope/new.rb +0 -44
- data/lib/takeltau/bit/scope/ssh.rb +0 -13
- data/lib/takeltau/git/check/bit.rb +0 -26
- data/lib/takeltau/init/packer/templates/bitrequireyml.tt +0 -13
- data/lib/takeltau/init/takelage/templates/bitrequireyml.tt +0 -5
data/lib/takeltau.rb
CHANGED
@@ -20,30 +20,17 @@ require_relative 'takeltau/lib/system'
|
|
20
20
|
require_relative 'takeltau/lib/config'
|
21
21
|
require_relative 'takeltau/lib/project'
|
22
22
|
|
23
|
+
require_relative 'takeltau/completion/cli'
|
23
24
|
require_relative 'takeltau/git/check/clean'
|
24
|
-
require_relative 'takeltau/git/check/
|
25
|
+
require_relative 'takeltau/git/check/hg'
|
25
26
|
require_relative 'takeltau/git/check/workspace'
|
26
27
|
require_relative 'takeltau/git/check/cli'
|
28
|
+
require_relative 'takeltau/git/lib'
|
27
29
|
require_relative 'takeltau/git/cli'
|
28
|
-
require_relative 'takeltau/
|
29
|
-
require_relative 'takeltau/
|
30
|
-
require_relative 'takeltau/
|
31
|
-
require_relative 'takeltau/
|
32
|
-
require_relative 'takeltau/bit/scope/list'
|
33
|
-
require_relative 'takeltau/bit/scope/new'
|
34
|
-
require_relative 'takeltau/bit/scope/cli'
|
35
|
-
require_relative 'takeltau/bit/clipboard/lib'
|
36
|
-
require_relative 'takeltau/bit/clipboard/copy'
|
37
|
-
require_relative 'takeltau/bit/clipboard/paste'
|
38
|
-
require_relative 'takeltau/bit/clipboard/pull'
|
39
|
-
require_relative 'takeltau/bit/clipboard/push'
|
40
|
-
require_relative 'takeltau/bit/clipboard/cli'
|
41
|
-
require_relative 'takeltau/bit/require/lib'
|
42
|
-
require_relative 'takeltau/bit/require/export'
|
43
|
-
require_relative 'takeltau/bit/require/import'
|
44
|
-
require_relative 'takeltau/bit/require/cli'
|
45
|
-
require_relative 'takeltau/bit/cli'
|
46
|
-
require_relative 'takeltau/completion/cli'
|
30
|
+
require_relative 'takeltau/hg/export'
|
31
|
+
require_relative 'takeltau/hg/pull'
|
32
|
+
require_relative 'takeltau/hg/push'
|
33
|
+
require_relative 'takeltau/hg/cli'
|
47
34
|
require_relative 'takeltau/init/lib'
|
48
35
|
require_relative 'takeltau/init/packer/docker'
|
49
36
|
require_relative 'takeltau/init/packer/cli'
|
@@ -138,9 +125,6 @@ module Takeltau
|
|
138
125
|
# Subcommands
|
139
126
|
#
|
140
127
|
|
141
|
-
desc 'bit [COMMAND] ', 'Manage bit'
|
142
|
-
subcommand 'bit', Bit
|
143
|
-
|
144
128
|
desc 'completion [COMMAND] ', 'Print shell completion code'
|
145
129
|
subcommand 'completion', Completion
|
146
130
|
|
@@ -150,10 +134,13 @@ module Takeltau
|
|
150
134
|
desc 'git [COMMAND] ', 'Manage git'
|
151
135
|
subcommand 'git', Git
|
152
136
|
|
137
|
+
desc 'hg [COMMAND] ', 'Manage hg'
|
138
|
+
subcommand 'hg', Hg
|
139
|
+
|
153
140
|
desc 'info [COMMAND] ', 'Get information'
|
154
141
|
subcommand 'info', Info
|
155
142
|
|
156
|
-
desc 'init [COMMAND] ', 'Init
|
143
|
+
desc 'init [COMMAND] ', 'Init project'
|
157
144
|
subcommand 'init', Init
|
158
145
|
|
159
146
|
desc 'mutagen [COMMAND] ', 'Manage mutagen'
|
@@ -166,80 +153,68 @@ module Takeltau
|
|
166
153
|
# Top-level commands
|
167
154
|
#
|
168
155
|
|
156
|
+
desc 'clean', 'Alias for tau docker container clean'
|
157
|
+
# tau clean: {Takeltau::DockerContainer#clean}
|
158
|
+
def clean
|
159
|
+
Takeltau::DockerContainer.new.clean
|
160
|
+
end
|
161
|
+
|
169
162
|
desc 'config', 'Alias for tau self config active'
|
170
|
-
#
|
163
|
+
# tau config: {Takeltau::SelfConfig#active}
|
171
164
|
def config
|
172
165
|
Takeltau::SelfConfig.new.active
|
173
166
|
end
|
174
167
|
|
175
|
-
desc 'copy [DIR] [SCOPE]', 'Alias for tau bit clipboard copy'
|
176
|
-
# takeltau copy: {takelage::BitClipboard#copy}
|
177
|
-
def copy(dir_or_file, scope)
|
178
|
-
Takeltau::BitClipboard.new.copy dir_or_file, scope
|
179
|
-
end
|
180
|
-
|
181
|
-
desc 'project', 'Alias for tau info project active'
|
182
|
-
# takeltau project: {takelage::InfoProject#active}
|
183
|
-
def project
|
184
|
-
Takeltau::InfoProject.new.active
|
185
|
-
end
|
186
|
-
|
187
168
|
desc 'login', 'Alias for tau docker container login'
|
188
|
-
#
|
169
|
+
# tau login: {Takeltau::DockerContainer#login}
|
189
170
|
def login
|
190
171
|
Takeltau::DockerContainer.new.login
|
191
172
|
end
|
192
173
|
|
193
174
|
desc 'list', 'Alias for tau self list'
|
194
|
-
#
|
175
|
+
# tau version: {Takeltau::Self#list}
|
195
176
|
def list
|
196
177
|
Takeltau::Self.new.list
|
197
178
|
end
|
198
179
|
|
199
|
-
desc '
|
200
|
-
#
|
201
|
-
def
|
202
|
-
Takeltau::
|
203
|
-
end
|
204
|
-
|
205
|
-
desc 'paste [COMPONENT] [DIR]', 'Alias for tau bit clipboard paste'
|
206
|
-
# takeltau paste: {takelage::BitClipboard#paste}
|
207
|
-
def paste(cid, dir)
|
208
|
-
Takeltau::BitClipboard.new.paste cid, dir
|
209
|
-
end
|
210
|
-
|
211
|
-
desc 'pull', 'Alias for tau bit clipboard pull'
|
212
|
-
# takeltau pull: {takelage::BitClipboard#pull}
|
213
|
-
def pull
|
214
|
-
Takeltau::BitClipboard.new.pull
|
180
|
+
desc 'project', 'Alias for tau info project active'
|
181
|
+
# tau project: {Takeltau::InfoProject#active}
|
182
|
+
def project
|
183
|
+
Takeltau::InfoProject.new.active
|
215
184
|
end
|
216
185
|
|
217
186
|
desc 'prune', 'Alias for tau docker container prune'
|
218
|
-
#
|
187
|
+
# tau prune: {Takeltau::DockerContainer#prune}
|
219
188
|
def prune
|
220
189
|
Takeltau::DockerContainer.new.prune
|
221
190
|
end
|
222
191
|
|
223
|
-
desc '
|
224
|
-
#
|
192
|
+
desc 'pull', 'Alias for tau hg pull'
|
193
|
+
# tau pull: {Takeltau::Hg#pull}
|
194
|
+
def pull
|
195
|
+
Takeltau::Hg.new.pull
|
196
|
+
end
|
197
|
+
|
198
|
+
desc 'push', 'Alias for tau hg push'
|
199
|
+
# tau push: {Takeltau::Hg#push}
|
225
200
|
def push
|
226
|
-
Takeltau::
|
201
|
+
Takeltau::Hg.new.push
|
227
202
|
end
|
228
203
|
|
229
204
|
desc 'status', 'Alias for tau info status bar'
|
230
|
-
#
|
205
|
+
# tau status: {Takeltau::InfoStatus#bar}
|
231
206
|
def status
|
232
207
|
Takeltau::InfoStatus.new.bar
|
233
208
|
end
|
234
209
|
|
235
210
|
desc 'update', 'Alias for tau docker image update'
|
236
|
-
#
|
211
|
+
# tau update: {Takeltau::DockerImage#update}
|
237
212
|
def update
|
238
213
|
Takeltau::DockerImage.new.update
|
239
214
|
end
|
240
215
|
|
241
216
|
desc 'version', 'Alias for tau self version'
|
242
|
-
#
|
217
|
+
# tau version: {Takeltau::Self#version}
|
243
218
|
def version
|
244
219
|
Takeltau::Self.new.version
|
245
220
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: takeltau
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.35.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takelwerk
|
@@ -205,24 +205,6 @@ files:
|
|
205
205
|
- bin/tau
|
206
206
|
- lib/Thorfile
|
207
207
|
- lib/takeltau.rb
|
208
|
-
- lib/takeltau/bit/check/cli.rb
|
209
|
-
- lib/takeltau/bit/check/workspace.rb
|
210
|
-
- lib/takeltau/bit/cli.rb
|
211
|
-
- lib/takeltau/bit/clipboard/cli.rb
|
212
|
-
- lib/takeltau/bit/clipboard/copy.rb
|
213
|
-
- lib/takeltau/bit/clipboard/lib.rb
|
214
|
-
- lib/takeltau/bit/clipboard/paste.rb
|
215
|
-
- lib/takeltau/bit/clipboard/pull.rb
|
216
|
-
- lib/takeltau/bit/clipboard/push.rb
|
217
|
-
- lib/takeltau/bit/require/cli.rb
|
218
|
-
- lib/takeltau/bit/require/export.rb
|
219
|
-
- lib/takeltau/bit/require/import.rb
|
220
|
-
- lib/takeltau/bit/require/lib.rb
|
221
|
-
- lib/takeltau/bit/scope/add.rb
|
222
|
-
- lib/takeltau/bit/scope/cli.rb
|
223
|
-
- lib/takeltau/bit/scope/list.rb
|
224
|
-
- lib/takeltau/bit/scope/new.rb
|
225
|
-
- lib/takeltau/bit/scope/ssh.rb
|
226
208
|
- lib/takeltau/completion/cli.rb
|
227
209
|
- lib/takeltau/default.yml
|
228
210
|
- lib/takeltau/docker/check/cli.rb
|
@@ -245,11 +227,16 @@ files:
|
|
245
227
|
- lib/takeltau/docker/image/tag/latest.rb
|
246
228
|
- lib/takeltau/docker/image/tag/list.rb
|
247
229
|
- lib/takeltau/docker/image/update.rb
|
248
|
-
- lib/takeltau/git/check/bit.rb
|
249
230
|
- lib/takeltau/git/check/clean.rb
|
250
231
|
- lib/takeltau/git/check/cli.rb
|
232
|
+
- lib/takeltau/git/check/hg.rb
|
251
233
|
- lib/takeltau/git/check/workspace.rb
|
252
234
|
- lib/takeltau/git/cli.rb
|
235
|
+
- lib/takeltau/git/lib.rb
|
236
|
+
- lib/takeltau/hg/cli.rb
|
237
|
+
- lib/takeltau/hg/export.rb
|
238
|
+
- lib/takeltau/hg/pull.rb
|
239
|
+
- lib/takeltau/hg/push.rb
|
253
240
|
- lib/takeltau/info/cli.rb
|
254
241
|
- lib/takeltau/info/project/cli.rb
|
255
242
|
- lib/takeltau/info/status/bar.rb
|
@@ -264,13 +251,13 @@ files:
|
|
264
251
|
- lib/takeltau/init/packer/cli.rb
|
265
252
|
- lib/takeltau/init/packer/docker.rb
|
266
253
|
- lib/takeltau/init/packer/templates/ansiblelint.tt
|
267
|
-
- lib/takeltau/init/packer/templates/bitrequireyml.tt
|
268
254
|
- lib/takeltau/init/packer/templates/groupvarsprojectyml.tt
|
255
|
+
- lib/takeltau/init/packer/templates/hgclone.tt
|
269
256
|
- lib/takeltau/init/packer/templates/playbooksiteyml.tt
|
270
257
|
- lib/takeltau/init/packer/templates/projectyml.tt
|
271
258
|
- lib/takeltau/init/takelage/cli.rb
|
272
259
|
- lib/takeltau/init/takelage/rake.rb
|
273
|
-
- lib/takeltau/init/takelage/templates/
|
260
|
+
- lib/takeltau/init/takelage/templates/hgclone.tt
|
274
261
|
- lib/takeltau/init/takelage/templates/projectyml.tt
|
275
262
|
- lib/takeltau/init/templates/Rakefile.tt
|
276
263
|
- lib/takeltau/init/templates/gitignore.tt
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Takeltau
|
4
|
-
# takeltau bit check
|
5
|
-
class BitCheck < SubCommandBase
|
6
|
-
include LoggingModule
|
7
|
-
include SystemModule
|
8
|
-
include ConfigModule
|
9
|
-
include BitCheckWorkspace
|
10
|
-
|
11
|
-
#
|
12
|
-
# bit check workspace
|
13
|
-
#
|
14
|
-
desc 'workspace', 'Check if a bit workspace exists'
|
15
|
-
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
16
|
-
Check if a bit workspace exists
|
17
|
-
LONGDESC
|
18
|
-
# Check if a bit workspace exists.
|
19
|
-
def workspace
|
20
|
-
exit bit_check_workspace
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# takeltau bit check workspace
|
4
|
-
module BitCheckWorkspace
|
5
|
-
# Backend method for bit check workspace.
|
6
|
-
# @return [Boolean] is this a bit workspace?
|
7
|
-
def bit_check_workspace
|
8
|
-
log.debug 'Check if this is a bit workspace'
|
9
|
-
|
10
|
-
status_repo = _bit_check_workspace_bit_repo
|
11
|
-
return true if status_repo.exitstatus.zero?
|
12
|
-
|
13
|
-
dir = _bit_check_workspace_dir
|
14
|
-
log.debug "No bit workspace found in \"#{dir}\""
|
15
|
-
false
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
# Check bit repo.
|
21
|
-
def _bit_check_workspace_bit_repo
|
22
|
-
cmd_bit_repo =
|
23
|
-
config.active['cmd_bit_check_workspace_bit_list']
|
24
|
-
|
25
|
-
try cmd_bit_repo
|
26
|
-
end
|
27
|
-
|
28
|
-
# Get current working directory.
|
29
|
-
def _bit_check_workspace_dir
|
30
|
-
cmd_pwd =
|
31
|
-
config.active['cmd_bit_check_workspace_pwd']
|
32
|
-
|
33
|
-
stdout_str_dir = run cmd_pwd
|
34
|
-
|
35
|
-
stdout_str_dir.chomp
|
36
|
-
end
|
37
|
-
end
|
data/lib/takeltau/bit/cli.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Takeltau
|
4
|
-
# takeltau bit
|
5
|
-
class Bit < SubCommandBase
|
6
|
-
desc 'check [COMMAND]', 'Check bit state'
|
7
|
-
subcommand 'check', BitCheck
|
8
|
-
|
9
|
-
desc 'clipboard [COMMAND]', 'Manage bit clipboard'
|
10
|
-
subcommand 'clipboard', BitClipboard
|
11
|
-
|
12
|
-
desc 'require [COMMAND]', 'Manage bit requirements'
|
13
|
-
subcommand 'require', BitRequire
|
14
|
-
|
15
|
-
desc 'scope [COMMAND]', 'Manage bit scopes'
|
16
|
-
subcommand 'scope', BitScope
|
17
|
-
end
|
18
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Takeltau
|
4
|
-
# takeltau bit clipboard
|
5
|
-
class BitClipboard < SubCommandBase
|
6
|
-
include LoggingModule
|
7
|
-
include ConfigModule
|
8
|
-
include SystemModule
|
9
|
-
include GitCheckClean
|
10
|
-
include GitCheckBit
|
11
|
-
include GitCheckWorkspace
|
12
|
-
include BitCheckWorkspace
|
13
|
-
include BitClipboardLib
|
14
|
-
include BitClipboardCopy
|
15
|
-
include BitClipboardPaste
|
16
|
-
include BitClipboardPull
|
17
|
-
include BitClipboardPush
|
18
|
-
|
19
|
-
#
|
20
|
-
# bit copy
|
21
|
-
#
|
22
|
-
desc 'copy [DIR] [SCOPE]', 'Copy new [DIR] to [SCOPE]'
|
23
|
-
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
24
|
-
Copy a directory as a bit component to a bit remote scope
|
25
|
-
This command will add a directory as a bit component and tag it.
|
26
|
-
The id of the component will be created from the directory name.
|
27
|
-
The directory needs to contain a README.bit file
|
28
|
-
or else a new README.bit file will be created.
|
29
|
-
The README.bit will be the main file of the component which must not be deleted.
|
30
|
-
The tagged bit component will be exported to a bit remote scope.
|
31
|
-
LONGDESC
|
32
|
-
# Copy a file or directory as a bit component to a bit remote scope.
|
33
|
-
def copy(dir_or_file, scope)
|
34
|
-
exit bit_clipboard_copy dir_or_file, scope
|
35
|
-
end
|
36
|
-
|
37
|
-
#
|
38
|
-
# bit paste
|
39
|
-
#
|
40
|
-
desc 'paste [COMPONENT] [DIR]', 'Paste bit [COMPONENT] into [DIR]'
|
41
|
-
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
42
|
-
Paste a bit component into a directory
|
43
|
-
LONGDESC
|
44
|
-
# Paste a bit component into a directory.
|
45
|
-
def paste(cid, dir)
|
46
|
-
exit bit_clipboard_paste cid, dir
|
47
|
-
end
|
48
|
-
|
49
|
-
#
|
50
|
-
# bit pull
|
51
|
-
#
|
52
|
-
desc 'pull', 'Pull all updates for bit components from bit remote scopes'
|
53
|
-
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
54
|
-
Pull all updates for bit components from bit remote scopes
|
55
|
-
LONGDESC
|
56
|
-
# Pull all updates for bit components from bit remote scopes.
|
57
|
-
def pull
|
58
|
-
exit bit_clipboard_pull
|
59
|
-
end
|
60
|
-
|
61
|
-
#
|
62
|
-
# bit push
|
63
|
-
#
|
64
|
-
desc 'push', 'Push all updates of bit components to bit remote scopes'
|
65
|
-
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
66
|
-
Push all updates of bit components to bit remote scopes
|
67
|
-
LONGDESC
|
68
|
-
# Push all updates of bit components to bit remote scopes.
|
69
|
-
def push
|
70
|
-
exit bit_clipboard_push
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
@@ -1,142 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# takeltau bit clipboard copy
|
4
|
-
module BitClipboardCopy
|
5
|
-
# Backend method for bit copy.
|
6
|
-
def bit_clipboard_copy(dir, scope)
|
7
|
-
# remove trailing slash
|
8
|
-
dir = dir.chomp('/')
|
9
|
-
|
10
|
-
log.debug "Running bit copy \"#{dir}\" to \"#{scope}\""
|
11
|
-
|
12
|
-
return false unless configured? %w[project_root_dir]
|
13
|
-
|
14
|
-
return false unless _bit_clipboard_lib_prepare_workspace
|
15
|
-
|
16
|
-
unless File.directory? dir
|
17
|
-
log.error "The directory \"#{dir}\" does not exist"
|
18
|
-
return false
|
19
|
-
end
|
20
|
-
|
21
|
-
_bit_clipboard_copy_dir dir, scope
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
# rubocop:disable Metrics/MethodLength
|
27
|
-
def _bit_clipboard_copy_dir(dir, scope)
|
28
|
-
log.debug "Adding the directory \"#{dir}\" as a tagged bit component"
|
29
|
-
|
30
|
-
return false unless _bit_clipboard_copy_dir_scope_exists? scope
|
31
|
-
|
32
|
-
return false if _bit_clipboard_copy_readme_bit_exists_in_subdir? dir
|
33
|
-
|
34
|
-
id = _bit_clipboard_lib_id(dir)
|
35
|
-
|
36
|
-
_bit_clipboard_copy_touch_readme_bit dir
|
37
|
-
_bit_clipboard_copy_add_dir id, dir
|
38
|
-
_bit_clipboard_copy_tag_dir id
|
39
|
-
_bit_clipboard_copy_export_to_scope scope
|
40
|
-
_bit_clipbpard_lib_remove_bit_artifacts
|
41
|
-
_bit_clipboard_lib_sync_workspace
|
42
|
-
|
43
|
-
log.info "Copied directory \"#{dir}\" as bit component \"#{id}\" " \
|
44
|
-
"to bit remote scope \"#{scope}\""
|
45
|
-
end
|
46
|
-
# rubocop:enable Metrics/MethodLength
|
47
|
-
|
48
|
-
# Touch README.bit if necessary.
|
49
|
-
def _bit_clipboard_copy_touch_readme_bit(dir)
|
50
|
-
readme_bit = "#{dir}/README.bit"
|
51
|
-
return if File.file? readme_bit
|
52
|
-
|
53
|
-
log.info "Creating \"README.bit\" in \"#{dir}\""
|
54
|
-
File.open(readme_bit, 'w') {}
|
55
|
-
end
|
56
|
-
|
57
|
-
# Check if a README.bit file exists in a subdirectory.
|
58
|
-
def _bit_clipboard_copy_readme_bit_exists_in_subdir?(dir)
|
59
|
-
Dir.glob("#{dir}/**/README.bit").each do |file|
|
60
|
-
unless file == "#{dir}/README.bit"
|
61
|
-
log.error 'Nested README.bit file detected'
|
62
|
-
return true
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
false
|
67
|
-
end
|
68
|
-
|
69
|
-
# Check if bit scope exists.
|
70
|
-
def _bit_clipboard_copy_dir_scope_exists?(scope)
|
71
|
-
bit_dev = config.active['bit_dev_user']
|
72
|
-
|
73
|
-
# check if scope is a candidate for a bit.dev remote scope
|
74
|
-
if scope.start_with? "#{bit_dev}."
|
75
|
-
return false unless _bit_clipboard_bit_dev_scope_exists scope
|
76
|
-
else
|
77
|
-
return false unless _bit_clipboard_custom_scope_exists scope
|
78
|
-
end
|
79
|
-
|
80
|
-
true
|
81
|
-
end
|
82
|
-
|
83
|
-
# Check if bit.dev remote scope exists.
|
84
|
-
def _bit_clipboard_bit_dev_scope_exists(scope)
|
85
|
-
cmd_bit_list_scope = format(
|
86
|
-
config.active['cmd_bit_clipboard_copy_bit_list_scope'],
|
87
|
-
scope: scope
|
88
|
-
)
|
89
|
-
|
90
|
-
status = try cmd_bit_list_scope
|
91
|
-
|
92
|
-
return true if status.exitstatus.zero?
|
93
|
-
|
94
|
-
log.error "No bit.dev remote scope \"#{scope}\" found"
|
95
|
-
false
|
96
|
-
end
|
97
|
-
|
98
|
-
# Check if bit remote scope is added to local workspace.
|
99
|
-
def _bit_clipboard_custom_scope_exists(scope)
|
100
|
-
cmd_bit_list_remotes =
|
101
|
-
config.active['cmd_bit_clipboard_copy_bit_list_remotes']
|
102
|
-
|
103
|
-
stdout_str = run cmd_bit_list_remotes
|
104
|
-
|
105
|
-
return true if /.*\s+#{scope}\s+.*/m.match? stdout_str
|
106
|
-
|
107
|
-
log.error "No bit remote scope \"#{scope}\" " \
|
108
|
-
'found in local bit workspace'
|
109
|
-
false
|
110
|
-
end
|
111
|
-
|
112
|
-
# bit tag dir.
|
113
|
-
def _bit_clipboard_copy_add_dir(id, dir)
|
114
|
-
cmd_bit_add_dir = format(
|
115
|
-
config.active['cmd_bit_clipboard_copy_bit_add_dir'],
|
116
|
-
id: id,
|
117
|
-
dir: dir
|
118
|
-
)
|
119
|
-
|
120
|
-
run cmd_bit_add_dir
|
121
|
-
end
|
122
|
-
|
123
|
-
# bit tag dir.
|
124
|
-
def _bit_clipboard_copy_tag_dir(id)
|
125
|
-
cmd_bit_tag_id = format(
|
126
|
-
config.active['cmd_bit_clipboard_copy_bit_tag_id'],
|
127
|
-
id: id
|
128
|
-
)
|
129
|
-
|
130
|
-
run cmd_bit_tag_id
|
131
|
-
end
|
132
|
-
|
133
|
-
# bit export component to bit remote scope.
|
134
|
-
def _bit_clipboard_copy_export_to_scope(scope)
|
135
|
-
cmd_bit_export_to_scope = format(
|
136
|
-
config.active['cmd_bit_clipboard_copy_bit_export_to_scope'],
|
137
|
-
scope: scope
|
138
|
-
)
|
139
|
-
|
140
|
-
run cmd_bit_export_to_scope
|
141
|
-
end
|
142
|
-
end
|
@@ -1,143 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# takeltau bit clipboard lib
|
4
|
-
module BitClipboardLib
|
5
|
-
private
|
6
|
-
|
7
|
-
# Run bit status.
|
8
|
-
def _bit_clipboard_lib_bit_status
|
9
|
-
log.debug 'Running bit status'
|
10
|
-
|
11
|
-
cmd_bit_status = config.active['cmd_bit_clipboard_lib_bit_status']
|
12
|
-
run_and_exit cmd_bit_status
|
13
|
-
end
|
14
|
-
|
15
|
-
# Prepare workspace for bit clipboard.
|
16
|
-
def _bit_clipboard_lib_prepare_workspace
|
17
|
-
unless bit_check_workspace
|
18
|
-
log.error 'No bit workspace'
|
19
|
-
return false
|
20
|
-
end
|
21
|
-
|
22
|
-
return true unless git_check_workspace
|
23
|
-
|
24
|
-
_bit_clipboard_lib_prepare_git_workspace
|
25
|
-
end
|
26
|
-
|
27
|
-
# Prepare git workspace for bit clipboard.
|
28
|
-
def _bit_clipboard_lib_prepare_git_workspace
|
29
|
-
unless git_check_bit
|
30
|
-
log.error 'Not on git main branch'
|
31
|
-
return false
|
32
|
-
end
|
33
|
-
|
34
|
-
unless git_check_clean
|
35
|
-
log.error 'No clean git workspace'
|
36
|
-
return false
|
37
|
-
end
|
38
|
-
|
39
|
-
_bit_clipboard_lib_git_pull
|
40
|
-
end
|
41
|
-
|
42
|
-
# Remove bit artifacts.
|
43
|
-
def _bit_clipbpard_lib_remove_bit_artifacts
|
44
|
-
log.debug 'Removing bit artifacts'
|
45
|
-
|
46
|
-
# Remove node_modules directory.
|
47
|
-
FileUtils.remove_entry_secure('node_modules', force: true)
|
48
|
-
|
49
|
-
# Remove index.bit files recursively.
|
50
|
-
Dir.glob('./**/index.bit').each do |file|
|
51
|
-
FileUtils.remove_entry_secure(file, force: true)
|
52
|
-
end
|
53
|
-
|
54
|
-
# Remove package.json file.
|
55
|
-
FileUtils.remove_entry_secure('package.json', force: true)
|
56
|
-
end
|
57
|
-
|
58
|
-
# Sync workspace with upstream.
|
59
|
-
def _bit_clipboard_lib_sync_workspace
|
60
|
-
log.debug 'Syncing git workspace'
|
61
|
-
|
62
|
-
path = config.active['project_root_dir']
|
63
|
-
file = "#{path}/.bitmap"
|
64
|
-
message = 'Update .bitmap'
|
65
|
-
|
66
|
-
_bit_clipboard_lib_git_add file
|
67
|
-
_bit_clipboard_lib_git_commit message
|
68
|
-
_bit_clipboard_lib_git_push
|
69
|
-
end
|
70
|
-
|
71
|
-
# git add .bitmap.
|
72
|
-
def _bit_clipboard_lib_git_add(file)
|
73
|
-
log.debug "Adding \"#{file}\" to git"
|
74
|
-
|
75
|
-
cmd_bit_clipboard_git_add = format(
|
76
|
-
config.active['cmd_bit_clipboard_git_add'],
|
77
|
-
file: file
|
78
|
-
)
|
79
|
-
run cmd_bit_clipboard_git_add
|
80
|
-
end
|
81
|
-
|
82
|
-
# git commit -m "Update .bitmap".
|
83
|
-
def _bit_clipboard_lib_git_commit(message)
|
84
|
-
log.debug "Committing to git with message \"#{message}\""
|
85
|
-
|
86
|
-
cmd_bit_clipboard_git_commit = format(
|
87
|
-
config.active['cmd_bit_clipboard_git_commit'],
|
88
|
-
message: message
|
89
|
-
)
|
90
|
-
|
91
|
-
run cmd_bit_clipboard_git_commit
|
92
|
-
end
|
93
|
-
|
94
|
-
# git push origin main.
|
95
|
-
def _bit_clipboard_lib_git_push
|
96
|
-
log.debug 'Pushing main branch to origin'
|
97
|
-
|
98
|
-
cmd_bit_clipboard_git_push = format(
|
99
|
-
config.active['cmd_bit_clipboard_git_push'],
|
100
|
-
main: config.active['git_bit_branch']
|
101
|
-
)
|
102
|
-
|
103
|
-
run cmd_bit_clipboard_git_push
|
104
|
-
end
|
105
|
-
|
106
|
-
# git pull.
|
107
|
-
def _bit_clipboard_lib_git_pull
|
108
|
-
log.debug 'Updating git workspace'
|
109
|
-
cmd_bit_clipboard_git_pull = format(
|
110
|
-
config.active['cmd_bit_clipboard_git_pull'],
|
111
|
-
main: config.active['git_bit_branch']
|
112
|
-
)
|
113
|
-
|
114
|
-
return true if try cmd_bit_clipboard_git_pull
|
115
|
-
|
116
|
-
log.error 'Unable to update git workspace'
|
117
|
-
false
|
118
|
-
end
|
119
|
-
|
120
|
-
# Generate bit component ID.
|
121
|
-
def _bit_clipboard_lib_id(name)
|
122
|
-
id = ''
|
123
|
-
|
124
|
-
# bit restrictions:
|
125
|
-
# component names can only contain alphanumeric,
|
126
|
-
# lowercase characters, and the following ["-", "_", "$", "!", "/"]
|
127
|
-
|
128
|
-
# convert directory name to lowercase characters
|
129
|
-
dir_downcase = name.downcase
|
130
|
-
|
131
|
-
# construct array of allowed characters
|
132
|
-
allowed_chars = [*('a'..'z'), *('0'..'9'), '-', '_', '$', '!', '/']
|
133
|
-
|
134
|
-
# iterate over directory or file name
|
135
|
-
# and replace invalid characters with underscore
|
136
|
-
dir_downcase.split('').each do |char|
|
137
|
-
id += allowed_chars.include?(char) ? char : '_'
|
138
|
-
end
|
139
|
-
|
140
|
-
log.debug "Generated bit id \"#{id}\" from \"#{name}\""
|
141
|
-
id
|
142
|
-
end
|
143
|
-
end
|