caravan 0.6.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/.travis.yml +12 -3
- data/README.md +12 -2
- data/exe/caravan +9 -3
- data/lib/caravan.rb +5 -6
- data/lib/caravan/message.rb +1 -1
- data/lib/caravan/version.rb +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: f04af0c92d6322edaa0e750792d9377184adec46
|
4
|
+
data.tar.gz: d02d0c1601d98d6e0f1e33050113fbe5b7bb94e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bd169ffcb6a9f6caf6d9f912926085fce3a5cf3a09930690465ff0eb0b333d004344485fc0c0dbdacef86195a26d73ee3ddc865c4e76524bb006660ea05eb92
|
7
|
+
data.tar.gz: efb1b60eb0a047213f423f90f3c9a2270f10ccdc62b5100f6ec9034c23b7d192c4035ee422225cb4cc94b48df7315f47ba32d79f7c5d9c883ac1cd3293451190
|
data/.rubocop.yml
ADDED
data/.travis.yml
CHANGED
@@ -1,10 +1,19 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
3
|
rvm:
|
4
|
-
- 2.3.0
|
5
4
|
- 2.4.0
|
6
|
-
|
7
|
-
|
5
|
+
- 2.5.0
|
6
|
+
env:
|
7
|
+
global:
|
8
|
+
- CC_TEST_REPORTER_ID=b72ccd136db6874a3d5dd842c50c1dc0933a1f49a02c55ce8567ec7311600af3
|
9
|
+
before_script:
|
10
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
11
|
+
- chmod +x ./cc-test-reporter
|
12
|
+
- ./cc-test-reporter before-build
|
13
|
+
script:
|
14
|
+
- bundle exec rake test
|
15
|
+
after_script:
|
16
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
8
17
|
notifications:
|
9
18
|
email: false
|
10
19
|
slack: navyblue-team:ioO5diAGc5WUQVDKc5BH1UbE
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ The scenario is when we are developing in your local workspace and the program o
|
|
11
11
|
|
12
12
|
![](/assets/civ-5-caravan.png)
|
13
13
|
|
14
|
-
This is the caravan in Sid Meier's Civilization V, which the project name originally comes from.
|
14
|
+
This is the caravan in [Sid Meier's Civilization V](http://www.civilization5.com/), which the project name originally comes from.
|
15
15
|
|
16
16
|
## Installation
|
17
17
|
|
@@ -79,12 +79,22 @@ You may also write `src` and `dst` to `caravan.yml`. Hence, deployment made even
|
|
79
79
|
$ caravan
|
80
80
|
```
|
81
81
|
|
82
|
+
### Deploy Modes
|
83
|
+
|
84
|
+
* shell
|
85
|
+
* `cp` in local.
|
86
|
+
* scp
|
87
|
+
* `scp` to remote machines, _not recommended_.
|
88
|
+
* [rsync](https://rsync.samba.org/)
|
89
|
+
* `rsync` to remote machines, which is the default and recommended mode because it is incremental. Thus, it performs much better.
|
90
|
+
* rsync_local
|
91
|
+
* `rsync` in local.
|
92
|
+
|
82
93
|
## Plan
|
83
94
|
|
84
95
|
- [x] Basic watching and deploying
|
85
96
|
- [x] Exclude watching unwanted files
|
86
97
|
- [x] `caravan.yml` for project-specialized configuration
|
87
|
-
- [ ] Watch and deploy only the changed file instead of the whole folder
|
88
98
|
- [x] Callbacks for deployment
|
89
99
|
- [x] `after_create`
|
90
100
|
- [x] `after_change`
|
data/exe/caravan
CHANGED
@@ -10,6 +10,10 @@ option_parser = OptionParser.new do |opts|
|
|
10
10
|
opts.banner = "Caravan #{Caravan::VERSION}\nCopyright (c) David Zhang 2018\n"
|
11
11
|
opts.separator ""
|
12
12
|
|
13
|
+
opts.on("-l YAML_NAME", "--load YAML_NAME", "YAML path") do |value|
|
14
|
+
options[:yaml] = value
|
15
|
+
end
|
16
|
+
|
13
17
|
opts.on("-s SOURCE_PATH", "--source SOURCE_PATH", "Source path") do |value|
|
14
18
|
options[:src] = value
|
15
19
|
end
|
@@ -30,12 +34,10 @@ option_parser = OptionParser.new do |opts|
|
|
30
34
|
end
|
31
35
|
end
|
32
36
|
|
33
|
-
options[:once] = false
|
34
37
|
opts.on("-o", "--once", "Deploy for once") do
|
35
38
|
options[:once] = true
|
36
39
|
end
|
37
40
|
|
38
|
-
options[:debug] = false
|
39
41
|
opts.on("-b", "--debug", "Debug mode") do
|
40
42
|
options[:debug] = true
|
41
43
|
end
|
@@ -56,7 +58,11 @@ if ARGV.length == 0
|
|
56
58
|
merged_conf = Caravan::Config.merge({}, Caravan.process_conf("."))
|
57
59
|
else
|
58
60
|
option_parser.parse!(ARGV)
|
59
|
-
|
61
|
+
if options.key?(:yaml)
|
62
|
+
merged_conf = Caravan::Config.merge(options, Caravan.process_conf(options[:src], options[:yaml]))
|
63
|
+
else
|
64
|
+
merged_conf = Caravan::Config.merge(options, Caravan.process_conf(options[:src]))
|
65
|
+
end
|
60
66
|
end
|
61
67
|
|
62
68
|
if merged_conf.key?("src") && merged_conf.key?("dst") && merged_conf.key?("deploy_mode")
|
data/lib/caravan.rb
CHANGED
@@ -37,7 +37,7 @@ module Caravan
|
|
37
37
|
exit(0)
|
38
38
|
end
|
39
39
|
listener.start
|
40
|
-
|
40
|
+
|
41
41
|
trap("INT") do
|
42
42
|
listener.stop
|
43
43
|
deployer.before_destroy
|
@@ -52,6 +52,7 @@ module Caravan
|
|
52
52
|
deployer.before_deploy
|
53
53
|
deployer.run
|
54
54
|
deployer.after_deploy
|
55
|
+
Caravan::Message.success("Deployed once.")
|
55
56
|
end
|
56
57
|
|
57
58
|
def create_listener(deployer, src_path)
|
@@ -64,12 +65,10 @@ module Caravan
|
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
67
|
-
def process_conf(src_path)
|
68
|
+
def process_conf(src_path, yaml_name = Caravan::Config.default_conf_name)
|
68
69
|
Caravan::Message.success("Reading configuration...")
|
69
|
-
if src_path.nil?
|
70
|
-
|
71
|
-
end
|
72
|
-
user_config_path = File.join(File.expand_path(src_path), Caravan::Config.default_conf_name)
|
70
|
+
src_path = '.' if src_path.nil?
|
71
|
+
user_config_path = File.join(File.expand_path(src_path), yaml_name)
|
73
72
|
conf = Caravan::Config.from(user_config_path)
|
74
73
|
conf
|
75
74
|
end
|
data/lib/caravan/message.rb
CHANGED
data/lib/caravan/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caravan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Zhang
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: listen
|
@@ -119,6 +119,7 @@ extra_rdoc_files: []
|
|
119
119
|
files:
|
120
120
|
- ".codeclimate.yml"
|
121
121
|
- ".gitignore"
|
122
|
+
- ".rubocop.yml"
|
122
123
|
- ".travis.yml"
|
123
124
|
- CODE_OF_CONDUCT.md
|
124
125
|
- Gemfile
|