akitaonrails-locarails 1.1.4 → 1.1.5

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.
data/bin/locarails CHANGED
@@ -50,11 +50,17 @@ especifico para hospedagens Linux da Locaweb
50
50
  Uso: #{File.basename($0)} [caminho] [opcoes]
51
51
  STR
52
52
 
53
+ opts.on("--version", "Mostra versao atual do locarails") do
54
+ require 'locarails'
55
+ puts "Locarails v#{Locarails::VERSION::STRING}"
56
+ exit 0
57
+ end
58
+
53
59
  opts.on("-h", "--help", "Mostra esta tela de ajuda") do
54
60
  puts opts
55
61
  exit 0
56
62
  end
57
-
63
+
58
64
  opts.on("-m", "--mode=tipo", "modo de deployment (copy/git)", "Padrao: copy") do |mode|
59
65
  config.mode = mode
60
66
  unless "copy|git".include?(mode)
data/lib/locarails.rb CHANGED
@@ -1,8 +1,3 @@
1
- $:.unshift(File.dirname(__FILE__)) unless
2
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
-
1
+ require 'locarails/version'
4
2
  module Locarails
5
-
6
- VERSION = "1.1.4"
7
-
8
3
  end
@@ -0,0 +1,66 @@
1
+ class Capistrano::Deploy::Strategy::Copy
2
+ # Obtains a copy of the source code locally (via the #command method),
3
+ # compresses it to a single file, copies that file to all target
4
+ # servers, and uncompresses it on each of them into the deployment
5
+ # directory.
6
+ def deploy!
7
+ if copy_cache
8
+ if File.exists?(copy_cache)
9
+ logger.debug "refreshing local cache to revision #{revision} at #{copy_cache}"
10
+ system(source.sync(revision, copy_cache))
11
+ else
12
+ logger.debug "preparing local cache at #{copy_cache}"
13
+ system(source.checkout(revision, copy_cache))
14
+ end
15
+
16
+ logger.debug "copying cache to deployment staging area #{destination}"
17
+ Dir.chdir(copy_cache) do
18
+ FileUtils.mkdir_p(destination)
19
+ queue = Dir.glob("*", File::FNM_DOTMATCH)
20
+ while queue.any?
21
+ item = queue.shift
22
+ name = File.basename(item)
23
+
24
+ next if name == "." || name == ".."
25
+ next if copy_exclude.any? { |pattern| File.fnmatch(pattern, item) }
26
+
27
+ if File.symlink?(item)
28
+ FileUtils.ln_s(File.readlink(File.join(copy_cache, item)), File.join(destination, item))
29
+ elsif File.directory?(item)
30
+ queue += Dir.glob("#{item}/*", File::FNM_DOTMATCH)
31
+ FileUtils.mkdir(File.join(destination, item))
32
+ else
33
+ FileUtils.ln(File.join(copy_cache, item), File.join(destination, item))
34
+ end
35
+ end
36
+ end
37
+ else
38
+ logger.debug "getting (via #{copy_strategy}) revision #{revision} to #{destination}"
39
+ system(command)
40
+
41
+ if copy_exclude.any?
42
+ logger.debug "processing exclusions..."
43
+ copy_exclude.each { |pattern| FileUtils.rm_rf(Dir.glob(File.join(destination, pattern))) }
44
+ end
45
+ end
46
+
47
+ File.open(File.join(destination, "REVISION"), "w") { |f| f.puts(revision) }
48
+
49
+ logger.trace "compressing #{destination} to #{filename}"
50
+ # if it is Windows, force gzip using the pure Ruby minitar library
51
+ if Capistrano::Deploy::LocalDependency.on_windows?
52
+ require 'zlib'
53
+ require 'archive/tar/minitar'
54
+ Dir.chdir(tmpdir) { Archive::Tar::Minitar.pack(File.basename(destination), Zlib::GzipWriter.new(File.open(File.basename(filename), 'wb'))) }
55
+ configuration[:copy_compression] = :gzip
56
+ else
57
+ Dir.chdir(tmpdir) { system(compress(File.basename(destination), File.basename(filename)).join(" ")) }
58
+ end
59
+
60
+ upload(filename, remote_filename)
61
+ run "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"
62
+ ensure
63
+ FileUtils.rm filename rescue nil
64
+ FileUtils.rm_rf destination rescue nil
65
+ end
66
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ unless Gem.source_index.search('capistrano').select { |g| g.version.to_s =~ /^2\.5/ }.empty?
3
+ puts "Loading temporary fixes for Capistrano 2.5.x"
4
+ require 'capistrano'
5
+ require 'capistrano/recipes/deploy/strategy/copy'
6
+ require 'capistrano/recipes/deploy/scm/none'
7
+ require 'locarails/copy'
8
+ require 'locarails/none'
9
+ end
@@ -0,0 +1,9 @@
1
+ class Capistrano::Deploy::SCM::None
2
+ # Simply does a copy from the :repository directory to the
3
+ # :destination directory.
4
+ def checkout(revision, destination)
5
+ !Capistrano::Deploy::LocalDependency.on_windows? ? "cp -R #{repository} #{destination}" : "xcopy \"#{repository.gsub('/', '\\')}\" \"#{destination}\" /I /Y /Q /E"
6
+ end
7
+
8
+ alias_method :export, :checkout
9
+ end
@@ -2,7 +2,7 @@ module Locarails
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 1
5
- TINY = 3
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -3,57 +3,31 @@
3
3
  # utilizando estratégia de cópia sem servidor de versionamento
4
4
  # =============================================================================
5
5
  #
6
- # Para que esta receita funcione realize os seguintes passos:
6
+ # 1. Esta receita é executada na sua maquina local e nao na hospedagem remota
7
7
  #
8
- # 1. copie o arquivo backup_locaweb.rb no diretorio 'config' de sua aplicacao
9
- # 2. crie um arquivo 'config/database.locaweb.yml' configurando de acordo com
10
- # os dados de sua hospedagem (que você recebeu por e-mail com o título de
11
- # "Instrucoes - MySQL - Incluso"). Um exemplo seria assim:
12
- #
13
- # production:
14
- # adapter: mysql
15
- # encoding: utf8
16
- # database: railsdemo
17
- # username: railsdemo
18
- # password: xxxxxxxxx
19
- # host: mysql1179.locaweb.com.br
20
- #
21
- # 3. se você estiver utilizando subversion, git ou outro versionador, garanta
22
- # que os arquivos 'config/database.yml' e o 'config/database.locaweb.yml'
23
- # estão na lista de arquivos ignorados. Eh boa pratica nao mante-los num
24
- # repositorio
25
- # 4. garanta que voce tem capistrano instalado executando 'sudo gem install
26
- # capistrano'
27
- # 5. garanta que, a partir do diretorio do seu projeto, voce executou o comando
28
- # 'capify .' para que o capistrano se configure corretamente no seu projeto
29
- # 6. substitua o arquivo 'config/deploy.rb' gerado, por este arquivo que voce
30
- # baixou da Locaweb
31
- # 7. altere o arquivo 'config/deploy.rb' conforme o exemplo abaixo:
32
- #
33
- # set :user, "railsdemo"
34
- # set :domain, "railsdemo.tecnologia.ws"
35
- # set :application, "demo"
36
- # set :repository, "~/Sites/rails/demo"
37
- #
38
- # Note que 'application' eh o nome do diretorio que voce configurou no
39
- # Painel de Controle da Locaweb, onde ele mostra /public_html/demo, por
40
- # exemplo.
8
+ # 2. O Locarails depende da gem Capistrano
41
9
  #
42
- # 8. Feito isso digite 'cap deploy:setup'. Isso deve ser executado apenas uma vez
43
- # para que toda a configuracao necessaria seja feita na sua hospedagem
10
+ # 3. A estrategia de deployment padrao eh Copy, que comprime seu projeto e envia
11
+ # para o servidor via SCP, e la eh descomprimido. Esta opcao funciona em
12
+ # qualquer sistema operacional sem mais nenhuma dependencia, incluindo
13
+ # Windows
44
14
  #
45
- # 9. Finalmente, para colocar sua aplicação em produção, apenas execute
46
- # 'cap deploy'. Se nada der errado, deve estar tudo no ar.
15
+ # 4. A opcao -m git ativa a receita via Git que eh um repositorio descentralizado
16
+ # muito eficiente e que garante um deployment ainda mais rapido. Eh necessario
17
+ # que seu projeto local esteja em git e voce precisa do Git instalado na sua
18
+ # maquina
47
19
  #
48
- # 10. Se em algum momento, voce notar que a instalacao atual subiu com problemas
49
- # sempre podera voltar atras usando o comando 'cap deploy:rollback', garantindo
50
- # que problemas inesperados nao o deixem fora do ar.
20
+ # 5. Ainda nao existe suporte a Subversion
21
+ #
51
22
  #
52
23
  # Autor: Fabio Akita
53
24
  # E-mail: fabio.akita@locaweb.com.br
54
25
  # Locaweb Serviços de Internet S/A
55
26
  # Todos os direitos reservados
56
27
 
28
+ # correcao temporaria para capistrano 2.5.0
29
+ require 'locarails/fix'
30
+
57
31
  # =============================================================================
58
32
  # CONFIGURE OS VALORES DE ACORDO COM SUA HOSPEDAGEM
59
33
  # =============================================================================
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: akitaonrails-locarails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabio Akita
@@ -30,6 +30,15 @@ dependencies:
30
30
  - !ruby/object:Gem::Version
31
31
  version: "0"
32
32
  version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: archive-tar-minitar
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.5.2
41
+ version:
33
42
  description: A maneira mais simples para instalar aplicacoes Rails na hospedagem Linux da Locaweb.
34
43
  email: fabio.akita@locaweb.com.br
35
44
  executables:
@@ -49,6 +58,9 @@ files:
49
58
  - templates/deploy.rb.erb
50
59
  - templates/locaweb_backup.rb
51
60
  - templates/ssh_helper.rb
61
+ - lib/locarails/copy.rb
62
+ - lib/locarails/none.rb
63
+ - lib/locarails/fix.rb
52
64
  has_rdoc: true
53
65
  homepage: http://www.locaweb.com.br/rails
54
66
  post_install_message: