docker-sync 0.3.5 → 0.3.6
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 +4 -4
- data/VERSION +1 -1
- data/lib/docker-sync/config/project_config.rb +64 -14
- data/lib/docker-sync/preconditions/preconditions_linux.rb +28 -1
- data/lib/docker-sync/preconditions/preconditions_osx.rb +29 -8
- data/lib/docker-sync/preconditions/strategy.rb +8 -0
- data/lib/docker-sync/sync_manager.rb +5 -8
- data/lib/docker-sync/sync_process.rb +22 -4
- data/lib/docker-sync/sync_strategy/native.rb +69 -0
- data/lib/docker-sync/sync_strategy/unison.rb +2 -2
- data/lib/docker-sync/upgrade_check.rb +1 -1
- data/lib/docker-sync/watch_strategy/dummy.rb +6 -0
- data/lib/docker-sync/watch_strategy/fswatch.rb +5 -0
- data/tasks/sync/sync.thor +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2336a2163de001ea72e9eb9c2c10121878f222a
|
4
|
+
data.tar.gz: 86f36bcf8f7dfeff282d24482e57ee1b9841ce96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad2e54be371b67155fa802581608754bdb9132e9070541962e4c0c70521890ea4c297085ce979d0b8ea2cbc9a04b50cf03f64346927b97fb089987c93892a4f6
|
7
|
+
data.tar.gz: a77c9eac0ae4208d0d10cadb6b97bb1aa4578d9cf3dcce69e72c4695d8eea8d06afcca54d37ff320702d5ffbf5bd2f06051951f523c6e55e407267580ba2092d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.6
|
@@ -26,7 +26,10 @@ module DockerSync
|
|
26
26
|
|
27
27
|
def initialize(config_path: nil, config_string: nil)
|
28
28
|
if config_string.nil?
|
29
|
-
config_path
|
29
|
+
if config_path.nil? || config_path.empty?
|
30
|
+
config_path = DockerSync::ConfigLocator.lookup_project_config_path
|
31
|
+
end
|
32
|
+
|
30
33
|
load_project_config(config_path)
|
31
34
|
else
|
32
35
|
@config = DockerSync::ConfigSerializer.default_deserializer_string(config_string)
|
@@ -87,38 +90,85 @@ module DockerSync
|
|
87
90
|
end
|
88
91
|
|
89
92
|
def normalize_config!
|
93
|
+
normalize_options_config!
|
94
|
+
|
90
95
|
config['syncs'].each do |name, sync_config|
|
91
96
|
config['syncs'][name] = normalize_sync_config(sync_config)
|
92
97
|
end
|
93
98
|
end
|
94
99
|
|
100
|
+
def normalize_options_config!
|
101
|
+
config['options'] = {
|
102
|
+
'project_root' => 'pwd',
|
103
|
+
}.merge(config['options'] || {})
|
104
|
+
end
|
105
|
+
|
95
106
|
def normalize_sync_config(sync_config)
|
96
107
|
{
|
97
108
|
'sync_strategy' => sync_strategy_for(sync_config),
|
98
109
|
'watch_strategy' => watch_strategy_for(sync_config)
|
99
|
-
}.merge(sync_config)
|
110
|
+
}.merge(sync_config).merge(
|
111
|
+
'src' => expand_path(sync_config['src']),
|
112
|
+
)
|
100
113
|
end
|
101
114
|
|
102
115
|
def sync_strategy_for(sync_config)
|
103
|
-
|
104
|
-
|
105
|
-
|
116
|
+
sync_strategy = sync_config['sync_strategy']
|
117
|
+
|
118
|
+
if ['rsync', 'unison', 'native'].include?(sync_strategy)
|
119
|
+
sync_strategy
|
120
|
+
else
|
121
|
+
default_sync_strategy
|
106
122
|
end
|
107
123
|
end
|
108
124
|
|
109
125
|
def watch_strategy_for(sync_config)
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
end
|
116
|
-
elsif sync_config['sync_strategy'] == 'rsync'
|
117
|
-
'fswatch'
|
126
|
+
watch_strategy = sync_config['watch_strategy']
|
127
|
+
watch_strategy = 'dummy' if watch_strategy == 'disable'
|
128
|
+
|
129
|
+
if ['fswatch', 'unison', 'dummy'].include?(watch_strategy)
|
130
|
+
watch_strategy
|
118
131
|
else
|
119
|
-
|
132
|
+
default_watch_strategy(sync_config)
|
120
133
|
end
|
121
134
|
end
|
122
135
|
|
136
|
+
def default_sync_strategy
|
137
|
+
case true
|
138
|
+
when OS.linux? then 'native'
|
139
|
+
else 'unison'
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def default_watch_strategy(sync_config)
|
144
|
+
case sync_strategy_for(sync_config)
|
145
|
+
when 'rsync' then 'fswatch'
|
146
|
+
when 'unison' then 'unison'
|
147
|
+
when 'native' then 'dummy'
|
148
|
+
else raise "you shouldn't be here"
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def expand_path(path)
|
153
|
+
Dir.chdir(project_root) {
|
154
|
+
# [nbr] convert the sync src from relative to absolute path
|
155
|
+
# preserve '/' as it may be significant to the sync cmd
|
156
|
+
absolute_path = File.expand_path(path)
|
157
|
+
absolute_path << "/" if path.end_with?("/")
|
158
|
+
absolute_path
|
159
|
+
}
|
160
|
+
end
|
161
|
+
|
162
|
+
def project_root
|
163
|
+
if use_config_path_for_project_root?
|
164
|
+
File.dirname(@config_path)
|
165
|
+
else
|
166
|
+
Dir.pwd
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def use_config_path_for_project_root?
|
171
|
+
config['options']['project_root'] == 'config_path' && !(@config_path.nil? || @config_path.empty?)
|
172
|
+
end
|
123
173
|
end
|
124
174
|
end
|
@@ -2,6 +2,19 @@ module DockerSync
|
|
2
2
|
module Preconditions
|
3
3
|
class Linux
|
4
4
|
def check_all_preconditions(config)
|
5
|
+
return unless should_run_precondition?
|
6
|
+
|
7
|
+
docker_available
|
8
|
+
docker_running
|
9
|
+
|
10
|
+
if config.unison_required?
|
11
|
+
unison_available
|
12
|
+
end
|
13
|
+
|
14
|
+
if config.rsync_required?
|
15
|
+
rsync_available
|
16
|
+
fswatch_available
|
17
|
+
end
|
5
18
|
end
|
6
19
|
|
7
20
|
def docker_available
|
@@ -18,7 +31,21 @@ module DockerSync
|
|
18
31
|
|
19
32
|
def unison_available
|
20
33
|
end
|
21
|
-
end
|
22
34
|
|
35
|
+
def is_driver_docker_for_mac?
|
36
|
+
return false
|
37
|
+
end
|
38
|
+
|
39
|
+
def is_driver_docker_toolbox?
|
40
|
+
return false
|
41
|
+
end
|
42
|
+
private
|
43
|
+
|
44
|
+
def should_run_precondition?(silent: false)
|
45
|
+
true
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
end
|
23
50
|
end
|
24
51
|
end
|
@@ -45,6 +45,7 @@ module DockerSync
|
|
45
45
|
cmd1 = 'brew install unison'
|
46
46
|
|
47
47
|
Thor::Shell::Basic.new.say_status 'warning', 'Could not find unison binary in $PATH. Trying to install now', :red
|
48
|
+
Thor::Shell::Basic.new.say_status 'command', cmd1, :white
|
48
49
|
if Thor::Shell::Basic.new.yes?('I will install unison using brew for you? (y/N)')
|
49
50
|
system cmd1
|
50
51
|
else
|
@@ -59,7 +60,7 @@ module DockerSync
|
|
59
60
|
def fswatch_available
|
60
61
|
if should_run_precondition?
|
61
62
|
if (find_executable0 'fswatch').nil?
|
62
|
-
cmd1 = 'brew install fswatch
|
63
|
+
cmd1 = 'brew install fswatch'
|
63
64
|
|
64
65
|
Thor::Shell::Basic.new.say_status 'warning', 'No fswatch available. Install it by "brew install fswatch Trying to install now', :red
|
65
66
|
if Thor::Shell::Basic.new.yes?('I will install fswatch using brew for you? (y/N)')
|
@@ -72,11 +73,22 @@ module DockerSync
|
|
72
73
|
|
73
74
|
end
|
74
75
|
|
76
|
+
def is_driver_docker_for_mac?
|
77
|
+
`docker info | grep 'Docker Root Dir: /var/lib/docker' && docker info | grep 'Operating System: Alpine Linux'`
|
78
|
+
$?.success?
|
79
|
+
end
|
80
|
+
|
81
|
+
def is_driver_docker_toolbox?
|
82
|
+
return false unless find_executable0('docker-machine')
|
83
|
+
`docker info | grep 'Operating System: Boot2Docker'`
|
84
|
+
$?.success?
|
85
|
+
end
|
86
|
+
|
75
87
|
private
|
76
88
|
|
77
89
|
def should_run_precondition?(silent = false)
|
78
90
|
unless has_brew?
|
79
|
-
Thor::Shell::Basic.new.say_status '
|
91
|
+
Thor::Shell::Basic.new.say_status 'info', 'Not running any precondition checks since you have no brew and that is unsupported. Is all up to you know.', :white unless silent
|
80
92
|
return false
|
81
93
|
end
|
82
94
|
return true
|
@@ -90,15 +102,24 @@ module DockerSync
|
|
90
102
|
def unox_available
|
91
103
|
if should_run_precondition?
|
92
104
|
`brew list unox`
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
Thor::Shell::Basic.new.say_status 'error', 'You
|
97
|
-
|
105
|
+
unless $?.success?
|
106
|
+
# unox installed, but not using brew, we do not allow that anymore
|
107
|
+
if File.exist?('/usr/local/bin/unison-fsmonitor')
|
108
|
+
Thor::Shell::Basic.new.say_status 'error', 'You installed unison-fsmonitor (unox) not using brew-method - the old legacy way. We need to fix that.', :red
|
109
|
+
|
110
|
+
uninstall_cmd='sudo rm /usr/local/bin/unison-fsmonitor'
|
111
|
+
Thor::Shell::Basic.new.say_status 'command', uninstall_cmd, :white
|
112
|
+
if Thor::Shell::Basic.new.yes?('Should i uninstall the legacy /usr/local/bin/unison-fsmonitor for you ? (y/N)')
|
113
|
+
system uninstall_cmd
|
114
|
+
else
|
115
|
+
Thor::Shell::Basic.new.say_status 'error', 'Uninstall /usr/local/bin/unison-fsmonitor manually please', :white
|
116
|
+
exit 1
|
117
|
+
end
|
98
118
|
end
|
99
|
-
cmd1 = 'brew tap eugenmayer/dockersync && brew install eugenmayer/dockersync/unox'
|
100
119
|
|
120
|
+
cmd1 = 'brew tap eugenmayer/dockersync && brew install eugenmayer/dockersync/unox'
|
101
121
|
Thor::Shell::Basic.new.say_status 'warning', 'Could not find unison-fsmonitor (unox) binary in $PATH. Trying to install now', :red
|
122
|
+
Thor::Shell::Basic.new.say_status 'command', cmd1, :white
|
102
123
|
if Thor::Shell::Basic.new.yes?('I will install unox through brew for you? (y/N)')
|
103
124
|
system cmd1
|
104
125
|
else
|
@@ -51,6 +51,14 @@ module DockerSync
|
|
51
51
|
def unison_available
|
52
52
|
strategy.unison_available
|
53
53
|
end
|
54
|
+
|
55
|
+
def is_driver_docker_for_mac?
|
56
|
+
strategy.is_driver_docker_for_mac?
|
57
|
+
end
|
58
|
+
|
59
|
+
def is_driver_docker_toolbox?
|
60
|
+
strategy.is_driver_docker_toolbox?
|
61
|
+
end
|
54
62
|
end
|
55
63
|
end
|
56
64
|
end
|
@@ -30,12 +30,6 @@ module Docker_sync
|
|
30
30
|
@config_syncs.each do |name, config|
|
31
31
|
@config_syncs[name]['config_path'] = @config_path
|
32
32
|
|
33
|
-
# [nbr] convert the sync src from relative to absolute path
|
34
|
-
# preserve '/' as it may be significant to the sync cmd
|
35
|
-
absolute_path = File.expand_path(@config_syncs[name]['src'])
|
36
|
-
absolute_path << "/" if @config_syncs[name]['src'].end_with?("/")
|
37
|
-
@config_syncs[name]['src'] = absolute_path
|
38
|
-
|
39
33
|
@config_syncs[name]['cli_mode'] = @config_global['cli_mode'] || 'auto'
|
40
34
|
|
41
35
|
# set the global verbose setting, if the sync-endpoint does not define a own one
|
@@ -46,8 +40,10 @@ module Docker_sync
|
|
46
40
|
end
|
47
41
|
end
|
48
42
|
|
49
|
-
|
50
|
-
|
43
|
+
if @config_syncs[name].key?('dest')
|
44
|
+
puts 'Please do no longer use "dest" in your docker-sync.yml configuration - also see https://github.com/EugenMayer/docker-sync/wiki/1.2-Upgrade-Guide#dest-has-been-removed!'
|
45
|
+
exit 1
|
46
|
+
else
|
51
47
|
@config_syncs[name]['dest'] = '/sync'
|
52
48
|
end
|
53
49
|
|
@@ -163,6 +159,7 @@ module Docker_sync
|
|
163
159
|
config_string: options[:config_string]
|
164
160
|
)
|
165
161
|
|
162
|
+
@config_path = config.config_path
|
166
163
|
@config_global = config['options'] || {}
|
167
164
|
@config_syncs = config['syncs']
|
168
165
|
upgrade_syncs_config
|
@@ -2,6 +2,7 @@ require 'thor/shell'
|
|
2
2
|
# noinspection RubyResolve
|
3
3
|
require 'docker-sync/sync_strategy/rsync'
|
4
4
|
require 'docker-sync/sync_strategy/unison'
|
5
|
+
require 'docker-sync/sync_strategy/native'
|
5
6
|
# noinspection RubyResolve
|
6
7
|
require 'docker-sync/watch_strategy/fswatch'
|
7
8
|
require 'docker-sync/watch_strategy/dummy'
|
@@ -18,11 +19,17 @@ module Docker_Sync
|
|
18
19
|
|
19
20
|
# noinspection RubyStringKeysInHashInspection
|
20
21
|
def initialize(sync_name, options)
|
22
|
+
@sync_name = sync_name
|
23
|
+
|
21
24
|
defaults = {
|
22
25
|
'verbose' => false,
|
23
|
-
'sync_host_ip' =>
|
26
|
+
'sync_host_ip' => get_host_ip_default
|
24
27
|
}
|
25
|
-
|
28
|
+
# even if sync_host_ip is set, if it is set to auto, enforce the default
|
29
|
+
if options.key?('sync_host_ip') && options['sync_host_ip'] == 'auto' || options['sync_host_ip'] == ''
|
30
|
+
options['sync_host_ip'] = defaults['sync_host_ip']
|
31
|
+
end
|
32
|
+
|
26
33
|
@options = defaults.merge(options)
|
27
34
|
@sync_strategy = nil
|
28
35
|
@watch_strategy = nil
|
@@ -36,6 +43,8 @@ module Docker_Sync
|
|
36
43
|
@sync_strategy = Docker_Sync::SyncStrategy::Rsync.new(@sync_name, @options)
|
37
44
|
when 'unison'
|
38
45
|
@sync_strategy = Docker_Sync::SyncStrategy::Unison.new(@sync_name, @options)
|
46
|
+
when 'native'
|
47
|
+
@sync_strategy = Docker_Sync::SyncStrategy::Native.new(@sync_name, @options)
|
39
48
|
else
|
40
49
|
raise "Unknown sync_strategy #{@options['sync_strategy']}"
|
41
50
|
end
|
@@ -54,8 +63,17 @@ module Docker_Sync
|
|
54
63
|
end
|
55
64
|
end
|
56
65
|
|
57
|
-
def
|
58
|
-
return '127.0.0.1'
|
66
|
+
def get_host_ip_default
|
67
|
+
return '127.0.0.1' if DockerSync::Preconditions::Strategy.instance.is_driver_docker_for_mac?
|
68
|
+
|
69
|
+
if DockerSync::Preconditions::Strategy.instance.is_driver_docker_toolbox?
|
70
|
+
cmd = 'docker-machine ip'
|
71
|
+
stdout, stderr, exit_status = Open3.capture3(cmd)
|
72
|
+
unless exit_status.success?
|
73
|
+
raise "Error getting sync_host_ip automatically, exit code #{$?.exitstatus} ... #{stderr}"
|
74
|
+
end
|
75
|
+
return stdout.gsub("\n",'')
|
76
|
+
end
|
59
77
|
end
|
60
78
|
|
61
79
|
def run
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'thor/shell'
|
2
|
+
require 'docker-sync/preconditions/strategy'
|
3
|
+
|
4
|
+
module Docker_Sync
|
5
|
+
module SyncStrategy
|
6
|
+
class Native
|
7
|
+
include Thor::Shell
|
8
|
+
|
9
|
+
@options
|
10
|
+
@sync_name
|
11
|
+
|
12
|
+
def initialize(sync_name, options)
|
13
|
+
@sync_name = sync_name
|
14
|
+
@options = options
|
15
|
+
|
16
|
+
begin
|
17
|
+
DockerSync::Preconditions::Strategy.instance.docker_available
|
18
|
+
rescue Exception => e
|
19
|
+
say_status 'error', "#{@sync_name} has been configured to sync with native docker volume, but docker is not found", :red
|
20
|
+
say_status 'error', e.message, :red
|
21
|
+
exit 1
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def run
|
26
|
+
create_volume
|
27
|
+
end
|
28
|
+
|
29
|
+
def sync
|
30
|
+
# noop
|
31
|
+
end
|
32
|
+
|
33
|
+
def get_volume_name
|
34
|
+
@sync_name
|
35
|
+
end
|
36
|
+
|
37
|
+
def start_container
|
38
|
+
# noop
|
39
|
+
end
|
40
|
+
|
41
|
+
def clean
|
42
|
+
delete_volume
|
43
|
+
end
|
44
|
+
|
45
|
+
def stop
|
46
|
+
# noop
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def create_volume
|
52
|
+
run_cmd "docker volume create --opt type=none --opt device=\"#{@options['src']}\" --opt o=bind "\
|
53
|
+
"--name #{get_volume_name}"
|
54
|
+
|
55
|
+
say_status 'success', "Docker volume for #{get_volume_name} created", :white
|
56
|
+
end
|
57
|
+
|
58
|
+
def delete_volume
|
59
|
+
run_cmd "docker volume ls -q | grep #{get_volume_name} && docker volume rm #{get_volume_name}"
|
60
|
+
end
|
61
|
+
|
62
|
+
def run_cmd(cmd)
|
63
|
+
say_status 'command', cmd, :white if @options['verbose']
|
64
|
+
|
65
|
+
`#{cmd}`
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -117,7 +117,7 @@ module Docker_Sync
|
|
117
117
|
def sync_options
|
118
118
|
args = []
|
119
119
|
args = expand_ignore_strings + args
|
120
|
-
args.push(@options['src'])
|
120
|
+
args.push("'#{@options['src']}'")
|
121
121
|
args.push('-auto')
|
122
122
|
args.push('-batch')
|
123
123
|
args.push(sync_prefer)
|
@@ -187,7 +187,7 @@ module Docker_Sync
|
|
187
187
|
stdout, stderr, exit_status = Open3.capture3(cmd)
|
188
188
|
break if exit_status == 0
|
189
189
|
attempt += 1
|
190
|
-
|
190
|
+
raise 'Failed to start unison container in time, try to increase max_attempt in your configuration. See https://github.com/EugenMayer/docker-sync/wiki/2.-Configuration for more informations' if attempt > max_attempt
|
191
191
|
sleep 1
|
192
192
|
end
|
193
193
|
sync
|
@@ -65,7 +65,7 @@ class UpgradeChecker
|
|
65
65
|
end
|
66
66
|
|
67
67
|
if Gem::Version.new(last_upgraded_version) < Gem::Version.new('0.3.0')
|
68
|
-
Thor::Shell::Basic.new.say_status 'warning', "The installation progress of docker-sync 0.3.0 has changed, brew is now mandatory - you need to uninstall unox ! : \n\n_Please_ read :): https://github.com/EugenMayer/docker-sync/wiki/1.
|
68
|
+
Thor::Shell::Basic.new.say_status 'warning', "The installation progress of docker-sync 0.3.0 has changed, brew is now mandatory - you need to uninstall unox ! : \n\n_Please_ read :): https://github.com/EugenMayer/docker-sync/wiki/1.2-Upgrade-Guide\n\n", :red
|
69
69
|
|
70
70
|
cmd1 = 'sudo rm -f /usr/local/bin/unison-fsmonitor && brew tap eugenmayer/dockersync && brew install eugenmayer/dockersync/unox'
|
71
71
|
Thor::Shell::Basic.new.say_status 'ok', cmd1, :rwhite
|
@@ -9,11 +9,13 @@ module Docker_Sync
|
|
9
9
|
|
10
10
|
@options
|
11
11
|
@sync_name
|
12
|
+
@watch_fork
|
12
13
|
@watch_thread
|
13
14
|
|
14
15
|
def initialize(sync_name, options)
|
15
16
|
@options = options
|
16
17
|
@sync_name = sync_name
|
18
|
+
@watch_fork = nil
|
17
19
|
@watch_thread = nil
|
18
20
|
end
|
19
21
|
|
@@ -33,6 +35,10 @@ module Docker_Sync
|
|
33
35
|
def watch_options
|
34
36
|
end
|
35
37
|
|
38
|
+
def watch_fork
|
39
|
+
return @watch_fork
|
40
|
+
end
|
41
|
+
|
36
42
|
def watch_thread
|
37
43
|
return @watch_thread
|
38
44
|
end
|
data/tasks/sync/sync.thor
CHANGED
@@ -119,7 +119,7 @@ class Sync < Thor
|
|
119
119
|
|
120
120
|
config = config_preconditions
|
121
121
|
|
122
|
-
say_status 'ok',"Found configuration at #{config_path}"
|
122
|
+
say_status 'ok',"Found configuration at #{config.config_path}"
|
123
123
|
@sync_manager = Docker_sync::SyncManager.new(config: config)
|
124
124
|
@sync_manager.get_sync_points.each do |name, config|
|
125
125
|
say_status name, "On address #{config['sync_host_ip']}:#{config['sync_host_port']}",:white unless options['verbose']
|
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.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eugen Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -165,6 +165,7 @@ files:
|
|
165
165
|
- lib/docker-sync/preconditions/strategy.rb
|
166
166
|
- lib/docker-sync/sync_manager.rb
|
167
167
|
- lib/docker-sync/sync_process.rb
|
168
|
+
- lib/docker-sync/sync_strategy/native.rb
|
168
169
|
- lib/docker-sync/sync_strategy/rsync.rb
|
169
170
|
- lib/docker-sync/sync_strategy/unison.rb
|
170
171
|
- lib/docker-sync/update_check.rb
|