capistrano-former03 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/bin/f03capinstall ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'capistrano/former03/install'
3
+ Capistrano::Former03::Install.new.run
@@ -0,0 +1,115 @@
1
+ require 'ostruct'
2
+ require 'optparse'
3
+ require 'logger'
4
+ require 'erb'
5
+ require 'fileutils'
6
+
7
+ module Capistrano
8
+ module Former03
9
+ # Install application
10
+ class Install
11
+ @@name = 'f03capinstall'
12
+
13
+ def initialize
14
+ @options = {}
15
+ @argv = nil
16
+ @log = Logger.new(STDOUT)
17
+ @log.level = Logger::INFO
18
+
19
+
20
+ end
21
+
22
+ def parse_arguments
23
+ options = OpenStruct.new
24
+ options.stages = ['production','staging','development']
25
+ options.force = false
26
+ options.verbose = false
27
+
28
+ opt_parser = OptionParser.new do |opts|
29
+ opts.banner = "Usage: #{@@name} [options]"
30
+ # Boolean switch
31
+ opts.on("-s", "--stages [#{options.stages.join(',')}]", Array, "Specify custom stage names") do |s|
32
+ options.stages = stages
33
+ end
34
+
35
+ opts.on("-f", "--force", "Overwrite existing files") do |v|
36
+ options.force = v
37
+ end
38
+
39
+ opts.on("-v", "--verbose", "Run verbosely") do |v|
40
+ options.verbose = v
41
+ end
42
+ end
43
+
44
+ opt_parser.parse!(@argv)
45
+
46
+ @options = options
47
+
48
+ if @options.verbose
49
+ @log.level = Logger::DEBUG
50
+ end
51
+ end
52
+
53
+ def setup_templates
54
+ template_dir = Pathname.new(File.expand_path("../templates/", __FILE__))
55
+ @log.debug "Search for templates in path '#{template_dir}'"
56
+ @template_deploy_rb = ERB.new template_dir.join('deploy.rb.erb').read
57
+ @template_stage_rb = ERB.new template_dir.join('stage.rb.erb').read
58
+ @template_capfile = ERB.new template_dir.join('Capfile').read
59
+ end
60
+
61
+ def generate_files
62
+ pwd = Pathname.pwd
63
+ generate_file pwd.join('Capfile'), @template_capfile
64
+ generate_file pwd.join('config/deploy.rb'), @template_deploy_rb
65
+ @options.stages.each do |stage|
66
+ generate_file pwd.join("config/deploy/#{stage}.rb"), @template_stage_rb, stage
67
+ end
68
+ end
69
+
70
+ def generate_file (path,template,stage=nil)
71
+ require 'capistrano/version'
72
+
73
+ if not path.dirname.directory?
74
+ @log.debug "create directory '#{path.dirname}"
75
+ FileUtils.mkdir_p path.dirname
76
+ end
77
+
78
+ if path.exist?
79
+ if @options.force
80
+ @log.warn "Overwriting file '#{path}'. To overwrite it use flag --force"
81
+ path.delete
82
+ else
83
+ @log.warn "won't overwrite already existing file '#{path}'. To overwrite it use flag --force"
84
+ return
85
+ end
86
+ end
87
+
88
+ f=path.open('w')
89
+ f.write(template.result(binding))
90
+ f.close
91
+
92
+ @log.info "Wrote file '#{path}'"
93
+ end
94
+
95
+ # Main method of application
96
+ def run
97
+ @argv = ARGV.dup
98
+
99
+ # Parse arguments
100
+ parse_arguments
101
+
102
+ # logging
103
+ @log.debug "#{@@name} is starting with arguments: #{ARGV}"
104
+ @log.debug "Parsed options: #{@options}"
105
+
106
+ # setup templates
107
+ setup_templates
108
+
109
+ # generate the actual files
110
+ generate_files
111
+
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,8 @@
1
+ # Load DSL and Setup Up Stages
2
+ require 'capistrano/setup'
3
+
4
+ # Includes default deployment tasks
5
+ require 'capistrano/deploy'
6
+
7
+ # Includes the former03 extensions
8
+ require 'capistrano/former03'
@@ -0,0 +1,38 @@
1
+ # ensure this version of capistrano is used
2
+ lock '<%= Capistrano::VERSION %>'
3
+
4
+ set :application, '<MY_APP_NAME>'
5
+
6
+ # Link files into deploy destination
7
+ # set :linked_files, ['wwwroot/config.inc.php']
8
+
9
+ # Link directories into deploy destination
10
+ # set :linked_dirs, ['wwwroot/typo3temp']
11
+
12
+ # Default value for keep_releases is 5
13
+ # set :keep_releases, 5
14
+
15
+ # Ensure rights for all files/dirs
16
+ # set :ensure_file_mode, '644'
17
+ # set :ensure_dir_mode, '755'
18
+
19
+ # Special rights for single files
20
+ #set :ensure_path_mode, {
21
+ # 'wwwroot/secret.conf' => '400',
22
+ # 'wwwroot/public_writable_dir' => '777',
23
+ #}
24
+
25
+ # Execute custom task after local stage (example default task)
26
+ =begin
27
+ namespace :custom do
28
+ desc 'Run rakefile'
29
+ task :rakefile do
30
+ run_locally do
31
+ within fetch(:local_stage_path) do
32
+ execute 'bundle exec rake'
33
+ end
34
+ end
35
+ end
36
+ end
37
+ after 'former03:local:stage', 'custom:rakefile'
38
+ =end
@@ -0,0 +1,27 @@
1
+ # Force deployment of busybox for standard commadns
2
+ #set :deploy_busybox_bin, true
3
+
4
+ # Force deployment of own rsync binary
5
+ #set :deploy_rsync_bin, true
6
+
7
+ # Move current dir to current/current, workaround for symlink problems
8
+ #set :current_path_real_dir, true
9
+
10
+ # Example for password authentication (you probably want to use public keys)
11
+ =begin
12
+ set :ssh_options, {
13
+ :forward_agent => false,
14
+ :auth_methods => %w(password),
15
+ :password => '<passw0rd>',
16
+ }
17
+ =end
18
+
19
+ # Destination directory for deployment
20
+ set :deploy_to, '<DESTDIR>'
21
+
22
+ # Configure remote server
23
+ server '<DNSNAME>',
24
+ roles: %w{web},
25
+ user: '<USER>'
26
+
27
+
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Former03
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-former03
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Christian Simon
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-05-30 00:00:00.000000000 Z
12
+ date: 2014-06-04 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: capistrano
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - '='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - '='
25
28
  - !ruby/object:Gem::Version
@@ -27,63 +30,72 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: bundler
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rake
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: capistrano-spec
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rspec
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - '>='
83
+ - - ! '>='
74
84
  - !ruby/object:Gem::Version
75
85
  version: 2.5.0
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - '>='
91
+ - - ! '>='
81
92
  - !ruby/object:Gem::Version
82
93
  version: 2.5.0
83
94
  description: Capistrano with extensions for FORMER 03
84
95
  email:
85
96
  - simon@swine.de
86
- executables: []
97
+ executables:
98
+ - f03capinstall
87
99
  extensions: []
88
100
  extra_rdoc_files: []
89
101
  files:
@@ -92,11 +104,16 @@ files:
92
104
  - LICENSE.txt
93
105
  - README.md
94
106
  - Rakefile
107
+ - bin/f03capinstall
95
108
  - capistrano-former03.gemspec
96
109
  - lib/capistrano/former03.rb
97
110
  - lib/capistrano/former03/deploy_command.rb
111
+ - lib/capistrano/former03/install.rb
98
112
  - lib/capistrano/former03/rsync.rb
99
113
  - lib/capistrano/former03/symlink.rb
114
+ - lib/capistrano/former03/templates/Capfile
115
+ - lib/capistrano/former03/templates/deploy.rb.erb
116
+ - lib/capistrano/former03/templates/stage.rb.erb
100
117
  - lib/capistrano/former03/version.rb
101
118
  - lib/capistrano/tasks/former03.rake
102
119
  - share/build_rsync.sh
@@ -110,26 +127,33 @@ files:
110
127
  homepage: https://github.com/former03/capistrano-former03
111
128
  licenses:
112
129
  - MIT
113
- metadata: {}
114
130
  post_install_message:
115
131
  rdoc_options: []
116
132
  require_paths:
117
133
  - lib
118
134
  required_ruby_version: !ruby/object:Gem::Requirement
135
+ none: false
119
136
  requirements:
120
- - - '>='
137
+ - - ! '>='
121
138
  - !ruby/object:Gem::Version
122
139
  version: '0'
140
+ segments:
141
+ - 0
142
+ hash: 2410931206260644472
123
143
  required_rubygems_version: !ruby/object:Gem::Requirement
144
+ none: false
124
145
  requirements:
125
- - - '>='
146
+ - - ! '>='
126
147
  - !ruby/object:Gem::Version
127
148
  version: '0'
149
+ segments:
150
+ - 0
151
+ hash: 2410931206260644472
128
152
  requirements: []
129
153
  rubyforge_project:
130
- rubygems_version: 2.2.2
154
+ rubygems_version: 1.8.23
131
155
  signing_key:
132
- specification_version: 4
156
+ specification_version: 3
133
157
  summary: Capistrano with extensions for FORMER 03
134
158
  test_files:
135
159
  - spec/helpers.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 67b7d66c381ef6c78c06b1140493b6fcb76e37a4
4
- data.tar.gz: 2b982ebdf4ad4d78b89b2c95d5fa66a6106bb042
5
- SHA512:
6
- metadata.gz: 659d77f10ccd256f5cc3763adc5a870f7d92e06d56f2a2523fdb0e0f73b55e38374fc15ea843ba645ae37df518a2fcd4786d0d8e86d94795d547500e3ca23e19
7
- data.tar.gz: fda656e846548a2a32c77e4a526a0a3e87ea2419dc115e0e4fc144ee7746e303b1cb86cd17da2e9030132408f79a8a5a6e7f1295fb000e41269d6b743208eeb1