scatter_deploy 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +5 -5
  3. data/lib/scatter/cli.rb +46 -37
  4. data/lib/scatter.rb +1 -1
  5. metadata +7 -16
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6af75dd747591b2a9d664067d433790713a76ebe
4
+ data.tar.gz: 5efbd7958b3e24468a613ab01fe2ea50ecc8407c
5
+ SHA512:
6
+ metadata.gz: 34b265d0a713f0f0be7efdfa051be30435412126905caa3a158b7557cb401e1b062f905bc0aa102a3630fe0ca066161649e420376c38fc20ddb220e22150d7a0
7
+ data.tar.gz: eb12b87e636831e94d303ad6cbcf4d1b6678d3a50b217f5bb55b2b53df6a050176b077a5105b6d25570916372369802967d88a0f5dd0fdd5c82f453f2f13c0da
data/README.md CHANGED
@@ -14,11 +14,11 @@ You interact with Scatter through the `scatter` command. You can see a basic ov
14
14
 
15
15
  ```
16
16
  Tasks:
17
- scatter cap COMMAND # Run arbitrary Capistrano commands.
18
- scatter deploy # Run a deploy routine. This is the default task.
19
- scatter execute COMMAND # Run arbitrary commands.
20
- scatter help [TASK] # Describe available tasks or one specific task
21
- scatter version # Show version.
17
+ scatter cap COMMAND # Run arbitrary Capistrano commands.
18
+ scatter deploy # Run a deploy routine. This is the default task.
19
+ scatter exec COMMAND # Run arbitrary commands.
20
+ scatter help [TASK] # Describe available tasks or one specific task
21
+ scatter version # Show version.
22
22
 
23
23
  Options:
24
24
  -d, [--directory=DIRECTORY] # Specify a deploys directory.
data/lib/scatter/cli.rb CHANGED
@@ -41,55 +41,64 @@ module Scatter
41
41
  say Scatter::VERSION
42
42
  end
43
43
 
44
- protected
45
- def git?
46
- `git rev-parse --is-inside-work-tree 2>/dev/null`.match "^true"
47
- end
44
+ no_tasks do
45
+ def git?
46
+ unless system "which git >/dev/null 2>&1"
47
+ abort "Scatter requires Git if you want it to find projects automatically"
48
+ end
48
49
 
49
- def project_path
50
- if options.project
51
- File.expand_path options.project
52
- elsif git?
53
- `git rev-parse --show-toplevel`.chomp
50
+ `git rev-parse --is-inside-work-tree 2>/dev/null`.match "^true"
54
51
  end
55
- end
56
52
 
57
- def project_deploy_dir
58
- if options.shared
59
- "#{options.directory}/__shared"
60
- elsif project_path
61
- "#{options.directory}/#{File.basename project_path}"
53
+ def project_path
54
+ if options.project
55
+ File.expand_path options.project
56
+ elsif git?
57
+ `git rev-parse --show-toplevel`.chomp
58
+ end
62
59
  end
63
- end
64
60
 
65
- def capfile?
66
- File.exists? "#{project_deploy_dir}/Capfile"
67
- end
61
+ def project_deploy_dir
62
+ if options.shared
63
+ "#{options.directory}/__shared"
64
+ elsif project_path
65
+ "#{options.directory}/#{File.basename project_path}"
66
+ end
67
+ end
68
68
 
69
- def executable?
70
- deploy = "#{project_deploy_dir}/deploy"
71
- File.exists? deploy and File.executable? deploy
72
- end
69
+ def capfile?
70
+ File.exists? "#{project_deploy_dir}/Capfile"
71
+ end
73
72
 
74
- def generate_command
75
- return "./#{options.shared} #{project_path}" if options.shared
76
- return "./deploy #{project_path}" if executable?
77
- return "cap deploy" if capfile?
78
- end
73
+ def executable?
74
+ deploy = "#{project_deploy_dir}/deploy"
75
+ return false unless File.exists? deploy
79
76
 
80
- def run(command=nil)
81
- unless project_deploy_dir
82
- say "No deploy directory found"
83
- return
77
+ if File.executable? deploy
78
+ return true
79
+ else
80
+ abort "It looks like you have a deploy file, but it's not executable. Try something like: chmod +x #{deploy}"
81
+ end
84
82
  end
85
83
 
86
- unless command ||= generate_command
87
- say "No deploy command found"
88
- return
84
+ def generate_command
85
+ return "./#{options.shared} #{project_path}" if options.shared
86
+ return "./deploy #{project_path}" if executable?
87
+ return "cap deploy" if capfile?
89
88
  end
90
89
 
91
- system "cd #{project_deploy_dir} && #{command}"
92
- end
90
+ def run(command=nil)
91
+ unless project_deploy_dir
92
+ abort "No deploy directory found"
93
+ end
94
+
95
+ unless command ||= generate_command
96
+ abort "No deploy command found"
97
+ end
93
98
 
99
+ system "cd #{project_deploy_dir} && #{command}"
100
+ end
101
+
102
+ end
94
103
  end
95
104
  end
data/lib/scatter.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'scatter/cli'
2
2
 
3
3
  module Scatter
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.4"
5
5
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scatter_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
5
- prerelease:
4
+ version: 0.1.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Evan Solomon
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-11 00:00:00.000000000 Z
11
+ date: 2013-03-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: thor
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -59,30 +54,26 @@ files:
59
54
  homepage: http://evansolomon.me/
60
55
  licenses:
61
56
  - MIT
57
+ metadata: {}
62
58
  post_install_message:
63
59
  rdoc_options: []
64
60
  require_paths:
65
61
  - lib
66
62
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
63
  requirements:
69
- - - ! '>='
64
+ - - '>='
70
65
  - !ruby/object:Gem::Version
71
66
  version: '0'
72
- segments:
73
- - 0
74
- hash: 1486605952724511090
75
67
  required_rubygems_version: !ruby/object:Gem::Requirement
76
- none: false
77
68
  requirements:
78
- - - ! '>='
69
+ - - '>='
79
70
  - !ruby/object:Gem::Version
80
71
  version: 1.3.6
81
72
  requirements: []
82
73
  rubyforge_project:
83
- rubygems_version: 1.8.25
74
+ rubygems_version: 2.0.0
84
75
  signing_key:
85
- specification_version: 3
76
+ specification_version: 4
86
77
  summary: Scatter separates deploy scripts from project code, but keeps the convenience
87
78
  of running deploys from project directories.
88
79
  test_files: []