docker-sync 0.6.0 → 0.7.2
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88cce934f387bf527bd53628913c8bfe95b99533cea63a0ab45258fa66a4b185
|
4
|
+
data.tar.gz: b7fa487477e4ba03b6082f8712a391e0ac7c15b1fde8c671b35436c2a244f35a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 635d2f2a06c5f284395b1dbc67db3fbc616efca42650a3d912265d1c88239078776a9975c74394b1dfb4071a5ca9b9f85234fe4a530932b0da1176dbb9b1e55b
|
7
|
+
data.tar.gz: 3e54b8c08bee9b846e9fdd8991b21370bc57b97bb0864b3a7f88712c775e72832902cf0134651ecd2ed6d33165c8496af48f8997f1429b41bc5643b3854621f2
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.2
|
@@ -5,7 +5,11 @@ module DockerSync
|
|
5
5
|
def self.docker_for_mac?
|
6
6
|
return false unless Environment.mac?
|
7
7
|
return @docker_for_mac if defined? @docker_for_mac
|
8
|
-
|
8
|
+
|
9
|
+
# com.docker.hyperkit for old virtualization engine
|
10
|
+
# com.docker.virtualization for new virtualization engine
|
11
|
+
# see https://docs.docker.com/desktop/mac/#enable-the-new-apple-virtualization-framework
|
12
|
+
@docker_for_mac = Environment.system('pgrep -q com.docker.hyperkit') || Environment.system('pgrep -q com.docker.virtualization')
|
9
13
|
end
|
10
14
|
|
11
15
|
def self.docker_toolbox?
|
@@ -5,6 +5,7 @@ module DockerSync
|
|
5
5
|
module Unox
|
6
6
|
LEGACY_UNOX_WARNING = 'You installed unison-fsmonitor (unox) the old legacy way (i.e. not using brew). We need to fix that.'.freeze
|
7
7
|
FAILED_TO_REMOVE_LEGACY_UNOX = 'Failed to remove legacy unison-fsmonitor (unox). Please delete /usr/local/bin/unison-fsmonitor manually and try again.'.freeze
|
8
|
+
UNSUPPORTED_FSMONITOR = 'You are using unsupported version of unison-fsmonitor, consider installing eugenmayer/dockersync/unox instead'.freeze
|
8
9
|
|
9
10
|
class << self
|
10
11
|
extend Forwardable
|
@@ -13,15 +14,19 @@ module DockerSync
|
|
13
14
|
|
14
15
|
def self.available?
|
15
16
|
# should never have been called anyway - fix the call that it should check for the OS
|
16
|
-
raise 'Unox cannot be available for other
|
17
|
+
raise 'Unox cannot be available for platforms other than MacOS' unless Environment.mac?
|
17
18
|
|
18
|
-
|
19
|
-
|
19
|
+
return true if brew_package_installed?('unox')
|
20
|
+
return false unless brew_package_installed?('unison-fsmonitor')
|
21
|
+
|
22
|
+
say_status 'warning', UNSUPPORTED_FSMONITOR, :yellow unless @unsupported_fsmonitor_warning_displayed
|
23
|
+
@unsupported_fsmonitor_warning_displayed = true
|
24
|
+
true
|
20
25
|
end
|
21
26
|
|
22
27
|
def self.ensure!
|
23
28
|
return if available?
|
24
|
-
raise 'Unox cannot be installed on other
|
29
|
+
raise 'Unox cannot be installed on platforms other than MacOS' unless Environment.mac?
|
25
30
|
|
26
31
|
cleanup_non_brew_version!
|
27
32
|
PackageManager.install_package('eugenmayer/dockersync/unox')
|
@@ -39,6 +44,11 @@ module DockerSync
|
|
39
44
|
def self.non_brew_version_installed?
|
40
45
|
!available? && File.exist?('/usr/local/bin/unison-fsmonitor')
|
41
46
|
end
|
47
|
+
|
48
|
+
def self.brew_package_installed?(name)
|
49
|
+
cmd = "brew list #{name} > /dev/null 2>&1"
|
50
|
+
Environment.system(cmd)
|
51
|
+
end
|
42
52
|
end
|
43
53
|
end
|
44
54
|
end
|
@@ -42,12 +42,16 @@ module DockerSync
|
|
42
42
|
|
43
43
|
out = `#{cmd}`
|
44
44
|
if $?.exitstatus > 0
|
45
|
-
|
45
|
+
error_msg = "Error starting sync, exit code #{$?.exitstatus}"
|
46
|
+
say_status 'error', error_msg, :red
|
46
47
|
say_status 'message', out
|
47
|
-
else
|
48
48
|
TerminalNotifier.notify(
|
49
|
-
"
|
49
|
+
"#{error_msg}", :title => @sync_name, :subtitle => @options['src'], group: 'docker-sync'
|
50
50
|
) if @options['notify_terminal']
|
51
|
+
else
|
52
|
+
TerminalNotifier.notify(
|
53
|
+
"Synced #{@options['src']}", :title => @sync_name, group: 'docker-sync'
|
54
|
+
) if @options['notify_terminal'] && @options['notify_terminal'] != 'errors_only'
|
51
55
|
say_status 'ok', "Synced #{@options['src']}", :white
|
52
56
|
if @options['verbose']
|
53
57
|
say_status 'output', out
|
@@ -78,13 +78,20 @@ module DockerSync
|
|
78
78
|
|
79
79
|
stdout, stderr, exit_status = Open3.capture3(cmd)
|
80
80
|
if !exit_status.success?
|
81
|
-
|
81
|
+
error_msg = "Error starting sync, exit code #{$?.exitstatus}"
|
82
|
+
say_status 'error', error_msg, :red
|
82
83
|
say_status 'message', stdout
|
83
84
|
say_status 'message', stderr
|
84
|
-
|
85
|
+
|
85
86
|
if @options['notify_terminal']
|
86
87
|
TerminalNotifier.notify(
|
87
|
-
"
|
88
|
+
"#{error_msg}", :title => @sync_name, :subtitle => @options['src'], group: 'docker-sync'
|
89
|
+
)
|
90
|
+
end
|
91
|
+
else
|
92
|
+
if @options['notify_terminal'] && @options['notify_terminal'] != 'errors_only'
|
93
|
+
TerminalNotifier.notify(
|
94
|
+
"Synced #{@options['src']}", title: @sync_name, group: 'docker-sync'
|
88
95
|
)
|
89
96
|
end
|
90
97
|
say_status 'ok', "Synced #{@options['src']}", :white
|
@@ -205,7 +212,7 @@ module DockerSync
|
|
205
212
|
say_status 'ok', "starting initial sync of #{container_name}", :white if @options['verbose']
|
206
213
|
# wait until container is started, then sync:
|
207
214
|
sync_host_port = get_host_port(get_container_name, UNISON_CONTAINER_PORT)
|
208
|
-
cmd = "unison -testserver #{@options['src']} \"socket://#{@options['sync_host_ip']}:#{sync_host_port}\""
|
215
|
+
cmd = "unison -testserver \"#{@options['src']}\" \"socket://#{@options['sync_host_ip']}:#{sync_host_port}\""
|
209
216
|
say_status 'command', cmd, :white if @options['verbose']
|
210
217
|
attempt = 0
|
211
218
|
max_attempt = @options['max_attempt'] || 5
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eugen Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -224,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
224
|
- !ruby/object:Gem::Version
|
225
225
|
version: '0'
|
226
226
|
requirements: []
|
227
|
-
rubygems_version: 3.1.
|
227
|
+
rubygems_version: 3.1.6
|
228
228
|
signing_key:
|
229
229
|
specification_version: 4
|
230
230
|
summary: Docker Sync - Fast and efficient way to sync code to docker-containers
|