synkronos 1.0.0 → 1.1.1
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/.gitignore +1 -0
- data/README.md +4 -3
- data/ext/mkrf_conf.rb +21 -0
- data/lib/synkronos.rb +7 -7
- data/lib/synkronos/options.rb +0 -1
- data/lib/synkronos/platform_specific/platform_specific.rb +8 -0
- data/lib/synkronos/platform_specific/platforms/darwin.rb +6 -0
- data/lib/synkronos/platform_specific/platforms/linux.rb +6 -0
- data/lib/synkronos/rsync/rsync.rb +1 -0
- data/lib/synkronos/version.rb +1 -1
- data/spec/rsync/rsync_spec.rb +0 -1
- data/synkronos.gemspec +5 -6
- metadata +26 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f88380317e1c6c0230bfbfd441f5d7f7ab791dd4
|
|
4
|
+
data.tar.gz: ea771fe593f8ac7cb1f5e3745f5f72a40586373c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 12834d5d256c13cad342aefb51ba57b230a4de8b7fa41f433e283b75f517645b8a8faab30832fc0d872d1c499c345f0b464a18ee254821faae5fa8605bd94403
|
|
7
|
+
data.tar.gz: a96a6487af1d14bc96040baf6cc5602424f9d99396648a11a603d9c371338347836e0118ad2f7efc6a633c51c42918864916703546cc00f3d71b90653a7de933
|
data/.gitignore
CHANGED
data/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Synkronos
|
|
2
2
|
[](https://rubygems.org/gems/synkronos)
|
|
3
|
-
[](https://travis-ci.org/akhramov/synkronos
|
|
3
|
+
[](https://travis-ci.org/akhramov/synkronos)
|
|
4
4
|
|
|
5
5
|
Synkronos is a life-time folder synchronization tool.
|
|
6
|
-
It's based on rsync and works only under MacOSX yet.
|
|
6
|
+
It's based on rsync and works only under MacOSX and Linux platforms yet.
|
|
7
7
|
|
|
8
8
|
## Installation
|
|
9
9
|
___
|
|
@@ -36,5 +36,6 @@ ___
|
|
|
36
36
|
|
|
37
37
|
$ synkronos --ssh --src /path/to/src --dest user@host:/path/to/dest
|
|
38
38
|
|
|
39
|
-
* Tracking changes in remote directory using ssh
|
|
39
|
+
* Tracking changes in remote directory using ssh:
|
|
40
|
+
|
|
40
41
|
$ synkronos --ssh --src user@host:/path/to/src --dest /path/to/dest
|
data/ext/mkrf_conf.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'rubygems/command.rb'
|
|
2
|
+
require 'rubygems/dependency_installer.rb'
|
|
3
|
+
begin
|
|
4
|
+
Gem::Command.build_args = ARGV
|
|
5
|
+
rescue NoMethodError
|
|
6
|
+
end
|
|
7
|
+
inst = Gem::DependencyInstaller.new
|
|
8
|
+
begin
|
|
9
|
+
case RUBY_PLATFORM
|
|
10
|
+
when /darwin/
|
|
11
|
+
darwin_gem = ['rb-fsevent', '>= 0.9.4']
|
|
12
|
+
inst.install(*darwin_gem) unless Gem::Specification::find_all_by_name(*darwin_gem).any?
|
|
13
|
+
when /linux/
|
|
14
|
+
linux_gem = ['rb-inotify', '>= 0.9.5']
|
|
15
|
+
inst.install(*linux_gem) unless Gem::Specification::find_all_by_name(*linux_gem).any?
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
|
|
20
|
+
f.write("task :default\n")
|
|
21
|
+
f.close
|
data/lib/synkronos.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
require_relative "synkronos/version"
|
|
2
|
+
require_relative 'synkronos/options'
|
|
3
|
+
require_relative 'synkronos/rsync/rsync'
|
|
4
|
+
require_relative 'synkronos/platform_specific/platform_specific'
|
|
5
5
|
|
|
6
6
|
module Synkronos
|
|
7
7
|
def self.run(args)
|
|
@@ -9,10 +9,10 @@ module Synkronos
|
|
|
9
9
|
rsync_args = [opts[:src], opts[:dest], opts[:ssh], opts[:port]]
|
|
10
10
|
Rsync.sync(*rsync_args)
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
event = Synk.new
|
|
13
|
+
event.eye(opts[:src]) do
|
|
14
14
|
Rsync.sync(*rsync_args)
|
|
15
15
|
end
|
|
16
|
-
|
|
16
|
+
event.run
|
|
17
17
|
end
|
|
18
18
|
end
|
data/lib/synkronos/options.rb
CHANGED
|
@@ -8,6 +8,7 @@ module Synkronos
|
|
|
8
8
|
#
|
|
9
9
|
class Rsync
|
|
10
10
|
def self.sync(src, dest, ssh = false, port = 22)
|
|
11
|
+
src += '/' unless src.end_with?('/')
|
|
11
12
|
cmd = "rsync -a --delete #{ssh ? "-e 'ssh -p #{port}'" : nil} #{src} #{dest}"
|
|
12
13
|
Open3.popen3(cmd) do |_, _, stderr, wait_thr|
|
|
13
14
|
abort(stderr.read) unless wait_thr.value.success?
|
data/lib/synkronos/version.rb
CHANGED
data/spec/rsync/rsync_spec.rb
CHANGED
|
@@ -3,7 +3,6 @@ require 'spec_helper'
|
|
|
3
3
|
shared_examples 'file synchronizator' do |actions|
|
|
4
4
|
it 'moves a file from src to dest' do
|
|
5
5
|
expect(File).not_to exist("#{dest}/file")
|
|
6
|
-
|
|
7
6
|
actions.call(src, dest)
|
|
8
7
|
expect(File).to exist("#{dest}/file")
|
|
9
8
|
expect(File.read("#{dest}/file")).to include('Under the spreading chestnut tree')
|
data/synkronos.gemspec
CHANGED
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
|
11
11
|
spec.summary = %q{Synchronize your folders with synkronos }
|
|
12
12
|
spec.description = <<-EOS
|
|
13
13
|
Synkronos is a life-time folder synchronization tool.
|
|
14
|
-
It's based on rsync and works only under MacOSX yet.
|
|
14
|
+
It's based on rsync and works only under MacOSX and Linux yet.
|
|
15
15
|
EOS
|
|
16
16
|
|
|
17
17
|
spec.homepage = "https://github.com/akhramov/synkronos"
|
|
@@ -24,11 +24,10 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
spec.bindir = 'bin'
|
|
25
25
|
spec.executables << 'synkronos'
|
|
26
26
|
|
|
27
|
-
spec.add_development_dependency "bundler",
|
|
28
|
-
spec.add_development_dependency "rake",
|
|
29
|
-
spec.add_development_dependency 'rspec', '~> 3.0.0'
|
|
30
|
-
|
|
31
|
-
spec.add_dependency 'rb-fsevent', '~> 0.9.4'
|
|
27
|
+
spec.add_development_dependency "bundler", '~> 1.6', ">= 1.6"
|
|
28
|
+
spec.add_development_dependency "rake", '~> 10.0', '>= 10.0'
|
|
29
|
+
spec.add_development_dependency 'rspec', '~> 3.0.0', '>= 3.0.0'
|
|
32
30
|
|
|
33
31
|
spec.required_ruby_version = '>= 1.8.6'
|
|
32
|
+
spec.extensions = 'ext/mkrf_conf.rb'
|
|
34
33
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: synkronos
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Artyom Khramov
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-09-
|
|
11
|
+
date: 2014-09-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -17,6 +17,9 @@ dependencies:
|
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '1.6'
|
|
20
|
+
- - ">="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '1.6'
|
|
20
23
|
type: :development
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -24,6 +27,9 @@ dependencies:
|
|
|
24
27
|
- - "~>"
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: '1.6'
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.6'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: rake
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -31,6 +37,9 @@ dependencies:
|
|
|
31
37
|
- - "~>"
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
39
|
version: '10.0'
|
|
40
|
+
- - ">="
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '10.0'
|
|
34
43
|
type: :development
|
|
35
44
|
prerelease: false
|
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -38,6 +47,9 @@ dependencies:
|
|
|
38
47
|
- - "~>"
|
|
39
48
|
- !ruby/object:Gem::Version
|
|
40
49
|
version: '10.0'
|
|
50
|
+
- - ">="
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '10.0'
|
|
41
53
|
- !ruby/object:Gem::Dependency
|
|
42
54
|
name: rspec
|
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -45,6 +57,9 @@ dependencies:
|
|
|
45
57
|
- - "~>"
|
|
46
58
|
- !ruby/object:Gem::Version
|
|
47
59
|
version: 3.0.0
|
|
60
|
+
- - ">="
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: 3.0.0
|
|
48
63
|
type: :development
|
|
49
64
|
prerelease: false
|
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -52,27 +67,17 @@ dependencies:
|
|
|
52
67
|
- - "~>"
|
|
53
68
|
- !ruby/object:Gem::Version
|
|
54
69
|
version: 3.0.0
|
|
55
|
-
-
|
|
56
|
-
name: rb-fsevent
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: 0.9.4
|
|
62
|
-
type: :runtime
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
70
|
+
- - ">="
|
|
67
71
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 0.
|
|
72
|
+
version: 3.0.0
|
|
69
73
|
description: " Synkronos is a life-time folder synchronization tool. \n It's
|
|
70
|
-
based on rsync and works only under MacOSX yet.\n"
|
|
74
|
+
based on rsync and works only under MacOSX and Linux yet.\n"
|
|
71
75
|
email:
|
|
72
76
|
- futu.fata@gmail.com
|
|
73
77
|
executables:
|
|
74
78
|
- synkronos
|
|
75
|
-
extensions:
|
|
79
|
+
extensions:
|
|
80
|
+
- ext/mkrf_conf.rb
|
|
76
81
|
extra_rdoc_files: []
|
|
77
82
|
files:
|
|
78
83
|
- ".gitignore"
|
|
@@ -82,8 +87,12 @@ files:
|
|
|
82
87
|
- README.md
|
|
83
88
|
- Rakefile
|
|
84
89
|
- bin/synkronos
|
|
90
|
+
- ext/mkrf_conf.rb
|
|
85
91
|
- lib/synkronos.rb
|
|
86
92
|
- lib/synkronos/options.rb
|
|
93
|
+
- lib/synkronos/platform_specific/platform_specific.rb
|
|
94
|
+
- lib/synkronos/platform_specific/platforms/darwin.rb
|
|
95
|
+
- lib/synkronos/platform_specific/platforms/linux.rb
|
|
87
96
|
- lib/synkronos/rsync/rsync.rb
|
|
88
97
|
- lib/synkronos/version.rb
|
|
89
98
|
- spec/rsync/rsync_spec.rb
|