hostnet 0.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.
@@ -0,0 +1,14 @@
1
+ == 0.1.1 2008-10-07
2
+
3
+ * Migração para o Rubyforge
4
+
5
+ == 0.1.0 2008-09-30
6
+
7
+ * Novos tutoriais adicionados
8
+ * Configurando sua aplicação para enviar e-mails
9
+ * Dicas para administração e debug de sua aplicação Rails
10
+ * Adicionadas novas tasks
11
+
12
+ == 0.0.1 2008-09-24
13
+
14
+ * Initial release
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 Sylvestre Mergulhao
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,34 @@
1
+ History.txt
2
+ LICENSE
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ TODO
7
+ bin/hostnet
8
+ config/hoe.rb
9
+ config/requirements.rb
10
+ hostnet.gemspec
11
+ lib/hostnet.rb
12
+ lib/hostnet/version.rb
13
+ rails_generators/hostnet_deploy/USAGE
14
+ rails_generators/hostnet_deploy/hostnet_deploy_generator.rb
15
+ rails_generators/hostnet_deploy/templates/Capfile
16
+ rails_generators/hostnet_deploy/templates/deploy.rb
17
+ rails_generators/hostnet_email/USAGE
18
+ rails_generators/hostnet_email/hostnet_email_generator.rb
19
+ rails_generators/hostnet_email/templates/mail.rb
20
+ script/console
21
+ script/destroy
22
+ script/generate
23
+ setup.rb
24
+ tasks/deployment.rake
25
+ tasks/environment.rake
26
+ tasks/website.rake
27
+ test/test_generator_helper.rb
28
+ test/test_helper.rb
29
+ test/test_hostnet.rb
30
+ test/test_hostnet_deploy_generator.rb
31
+ test/test_hostnet_email_generator.rb
32
+ tutoriais/001-meu-primeiro-deploy-de-aplicacao-rails-para-a-hostnet/tutorial.mkdn
33
+ tutoriais/002-configurando-sua-aplicacao-para-enviar-e-mails/tutorial.mkdn
34
+ tutoriais/003-dicas-para-administracao-e-debug-de-sua-aplicacao-rails/tutorial.mkdn
@@ -0,0 +1,18 @@
1
+ = hostnet - gem oficial para suporte a deploy de aplicações
2
+
3
+ = Descrição
4
+
5
+ Gem de suporte a deploy de aplicações para ambiente compartilhado da Hostnet.
6
+
7
+ = Instalando
8
+
9
+ gem install hostnet
10
+
11
+ = Instalando a última versão em desenvolvimento (living on the edge)
12
+
13
+ gem install mergulhao-hostnet --source=http://gems.github.com
14
+
15
+ = Licença
16
+
17
+ MIT License, ver arquivo LICENSE
18
+
@@ -0,0 +1,4 @@
1
+ require 'config/requirements'
2
+ require 'config/hoe' # setup Hoe + all gem configuration
3
+
4
+ Dir['tasks/**/*.rake'].each { |rake| load rake }
data/TODO ADDED
File without changes
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'rubigen'
5
+
6
+ begin
7
+ require 'config/environment'
8
+ rescue LoadError
9
+ puts "Você não está na raiz de um projeto Rails."
10
+ exit(0)
11
+ end
12
+
13
+ require 'optparse'
14
+ require 'rails_generator'
15
+ require 'rails_generator/scripts/generate'
16
+
17
+ require 'rubigen/scripts/generate'
18
+ RubiGen::Base.use_component_sources!(:rails)
19
+
20
+ options = {}
21
+ OptionParser.new do |opts|
22
+ opts.banner = "
23
+ Usages: hostnet username domain (default)
24
+ hostnet --deploy username domain
25
+ hostnet --email mailer_username mailer_password domain
26
+ \n"
27
+
28
+ opts.on("-h", "--help", "Mostra esta mensagem") do |v|
29
+ puts opts
30
+ exit(0)
31
+ end
32
+
33
+ opts.on("-v", "--version", "Mostra a versão") do |v|
34
+ require 'hostnet/version'
35
+ puts "#{File.basename($0)} #{Hostnet::VERSION::STRING}"
36
+ exit(0)
37
+ end
38
+
39
+ opts.on("--deploy", "Cria receita do capistrano para deploy") do |v|
40
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'hostnet_deploy')
41
+ exit(0)
42
+ end
43
+
44
+ opts.on("--email", "Cria configuração de e-mail") do |v|
45
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'hostnet_email')
46
+ exit(0)
47
+ end
48
+ end.parse!
49
+
50
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'hostnet_deploy')
@@ -0,0 +1,75 @@
1
+ require 'hostnet/version'
2
+
3
+ AUTHOR = 'Sylvestre Mergulhao' # can also be an array of Authors
4
+ EMAIL = "contato@mergulhao.info"
5
+ DESCRIPTION = "gem oficial para suporte a deploy de aplicações"
6
+ GEM_NAME = 'hostnet' # what ppl will type to install your gem
7
+ RUBYFORGE_PROJECT = 'hostnet' # The unix name for your project
8
+ HOMEPATH = "http://github.com/mergulhao/#{RUBYFORGE_PROJECT}"
9
+ DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
10
+ EXTRA_DEPENDENCIES = [
11
+ ['rubigen', '>= 1.3.2'],
12
+ ['capistrano', '>= 2.5.0'],
13
+ ['archive-tar-minitar', '>= 0.5.2'],
14
+ ] # An array of rubygem dependencies [name, version]
15
+
16
+ @config_file = "~/.rubyforge/user-config.yml"
17
+ @config = nil
18
+ RUBYFORGE_USERNAME = "unknown"
19
+ def rubyforge_username
20
+ unless @config
21
+ begin
22
+ @config = YAML.load(File.read(File.expand_path(@config_file)))
23
+ rescue
24
+ puts <<-EOS
25
+ ERROR: No rubyforge config file found: #{@config_file}
26
+ Run 'rubyforge setup' to prepare your env for access to Rubyforge
27
+ - See http://newgem.rubyforge.org/rubyforge.html for more details
28
+ EOS
29
+ exit
30
+ end
31
+ end
32
+ RUBYFORGE_USERNAME.replace @config["username"]
33
+ end
34
+
35
+
36
+ REV = nil
37
+ # UNCOMMENT IF REQUIRED:
38
+ # REV = YAML.load(`svn info`)['Revision']
39
+ VERS = Hostnet::VERSION::STRING + (REV ? ".#{REV}" : "")
40
+ RDOC_OPTS = ['--quiet', '--title', 'hostnet documentation',
41
+ "--opname", "index.html",
42
+ "--line-numbers",
43
+ "--main", "README",
44
+ "--inline-source"]
45
+
46
+ class Hoe
47
+ def extra_deps
48
+ @extra_deps.reject! { |x| Array(x).first == 'hoe' }
49
+ @extra_deps
50
+ end
51
+ end
52
+
53
+ # Generate all the Rake tasks
54
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
55
+ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
56
+ p.developer(AUTHOR, EMAIL)
57
+ p.description = DESCRIPTION
58
+ p.summary = DESCRIPTION
59
+ p.url = HOMEPATH
60
+ p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
61
+ p.test_globs = ["test/**/test_*.rb"]
62
+ p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
63
+
64
+ # == Optional
65
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
66
+ p.extra_deps = EXTRA_DEPENDENCIES
67
+
68
+ #p.spec_extras = {} # A hash of extra values to set in the gemspec.
69
+ end
70
+
71
+ CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
72
+ PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
73
+ $hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
74
+ $hoe.rsync_args = '-av --delete --ignore-errors'
75
+ $hoe.spec.post_install_message = File.open(File.dirname(__FILE__) + "/../PostInstall.txt").read rescue ""
@@ -0,0 +1,15 @@
1
+ require 'fileutils'
2
+ include FileUtils
3
+
4
+ require 'rubygems'
5
+ %w[rake hoe newgem rubigen].each do |req_gem|
6
+ begin
7
+ require req_gem
8
+ rescue LoadError
9
+ puts "This Rakefile requires the '#{req_gem}' RubyGem."
10
+ puts "Installation: gem install #{req_gem} -y"
11
+ exit
12
+ end
13
+ end
14
+
15
+ $:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))
@@ -0,0 +1,45 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = %q{hostnet}
3
+ s.version = "0.1.1"
4
+
5
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
+ s.authors = ["Sylvestre Mergulhao"]
7
+ s.date = %q{2008-10-07}
8
+ s.default_executable = %q{hostnet}
9
+ s.description = %q{gem oficial para suporte a deploy de aplicações}
10
+ s.email = ["contato@mergulhao.info"]
11
+ s.executables = ["hostnet"]
12
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
13
+ s.files = ["History.txt", "LICENSE", "Manifest.txt", "README.txt", "Rakefile", "TODO", "bin/hostnet", "config/hoe.rb", "config/requirements.rb", "hostnet.gemspec", "lib/hostnet.rb", "lib/hostnet/version.rb", "rails_generators/hostnet_deploy/USAGE", "rails_generators/hostnet_deploy/hostnet_deploy_generator.rb", "rails_generators/hostnet_deploy/templates/Capfile", "rails_generators/hostnet_deploy/templates/deploy.rb", "rails_generators/hostnet_email/USAGE", "rails_generators/hostnet_email/hostnet_email_generator.rb", "rails_generators/hostnet_email/templates/mail.rb", "script/console", "script/destroy", "script/generate", "setup.rb", "tasks/deployment.rake", "tasks/environment.rake", "tasks/website.rake", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_hostnet.rb", "test/test_hostnet_deploy_generator.rb", "test/test_hostnet_email_generator.rb", "tutoriais/001-meu-primeiro-deploy-de-aplicacao-rails-para-a-hostnet/tutorial.mkdn", "tutoriais/002-configurando-sua-aplicacao-para-enviar-e-mails/tutorial.mkdn", "tutoriais/003-dicas-para-administracao-e-debug-de-sua-aplicacao-rails/tutorial.mkdn"]
14
+ s.has_rdoc = true
15
+ s.homepage = %q{http://github.com/mergulhao/hostnet}
16
+ s.post_install_message = %q{}
17
+ s.rdoc_options = ["--main", "README.txt"]
18
+ s.require_paths = ["lib"]
19
+ s.rubyforge_project = %q{hostnet}
20
+ s.rubygems_version = %q{1.2.0}
21
+ s.summary = %q{gem oficial para suporte a deploy de aplicações}
22
+ s.test_files = ["test/test_helper.rb", "test/test_generator_helper.rb", "test/test_hostnet.rb", "test/test_hostnet_deploy_generator.rb", "test/test_hostnet_email_generator.rb"]
23
+
24
+ if s.respond_to? :specification_version then
25
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
+ s.specification_version = 2
27
+
28
+ if current_version >= 3 then
29
+ s.add_runtime_dependency(%q<rubigen>, [">= 1.3.2"])
30
+ s.add_runtime_dependency(%q<capistrano>, [">= 2.5.0"])
31
+ s.add_runtime_dependency(%q<archive-tar-minitar>, [">= 0.5.2"])
32
+ s.add_development_dependency(%q<hoe>, [">= 1.7.0"])
33
+ else
34
+ s.add_dependency(%q<rubigen>, [">= 1.3.2"])
35
+ s.add_dependency(%q<capistrano>, [">= 2.5.0"])
36
+ s.add_dependency(%q<archive-tar-minitar>, [">= 0.5.2"])
37
+ s.add_dependency(%q<hoe>, [">= 1.7.0"])
38
+ end
39
+ else
40
+ s.add_dependency(%q<rubigen>, [">= 1.3.2"])
41
+ s.add_dependency(%q<capistrano>, [">= 2.5.0"])
42
+ s.add_dependency(%q<archive-tar-minitar>, [">= 0.5.2"])
43
+ s.add_dependency(%q<hoe>, [">= 1.7.0"])
44
+ end
45
+ end
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module Hostnet
5
+
6
+ end
@@ -0,0 +1,9 @@
1
+ module Hostnet
2
+ module VERSION #:nodoc:
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ TINY = 1
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.')
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ Description:
2
+
3
+ Cria arquivo de deploy do capistrano padrão Hostnet já configurado com seu usuário de domínio na Hostnet.
4
+
5
+ Usage:
6
+
7
+ script/generate hostnet_deploy username domain
8
+
@@ -0,0 +1,30 @@
1
+ class HostnetDeployGenerator < Rails::Generator::NamedBase
2
+ attr_reader :username, :domain
3
+
4
+ def initialize(runtime_args, runtime_options = {})
5
+ super
6
+ usage if runtime_args.size != 2
7
+ @username = runtime_args.shift
8
+ @domain = runtime_args.shift
9
+ # extract_options
10
+ end
11
+
12
+ def manifest
13
+ record do |m|
14
+ # Ensure appropriate folder(s) exists
15
+ # m.directory 'some_folder'
16
+
17
+ # Create stubs
18
+ # m.template "template.rb", "some_file_after_erb.rb"
19
+ # m.file "file", "some_file_copied"
20
+
21
+ m.file "Capfile" , "Capfile"
22
+ m.template "deploy.rb", "config/deploy.rb"
23
+ end
24
+ end
25
+
26
+ protected
27
+ def banner
28
+ "Usage: script/generate hostnet_deploy username domain"
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ load 'deploy' if respond_to?(:namespace) # cap2 differentiator
2
+ Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
3
+ load 'config/deploy'
@@ -0,0 +1,74 @@
1
+ # ------------------------------------------------------------------------------
2
+ # Receita oficial da Hostnet para deploy de aplicações Rails sem uso de
3
+ # controle de versão (v1.0)
4
+ # ------------------------------------------------------------------------------
5
+ # Compatível com Capistrano 2.5.0
6
+ # ------------------------------------------------------------------------------
7
+ # Autor: Sylvestre Mergulhão, http://mergulhao.info
8
+ # ------------------------------------------------------------------------------
9
+
10
+ # ------------------------------------------------------------------------------
11
+ # Defina seu usuário e domínio na Hostnet
12
+ # ------------------------------------------------------------------------------
13
+ set :user, "<%= username %>"
14
+ set :domain, "<%= domain %>"
15
+
16
+ # ------------------------------------------------------------------------------
17
+ # Defina o nome da aplicação. Deve ser deixado como está caso seja sua primeira.
18
+ # ------------------------------------------------------------------------------
19
+ set :application, "www"
20
+
21
+ # ------------------------------------------------------------------------------
22
+ # Não alterar daqui pra baixo!
23
+ # ------------------------------------------------------------------------------
24
+ set :scm, :none
25
+ set :deploy_via, :copy
26
+ set :repository, File.expand_path( File.join(File.dirname(__FILE__), "/..") )
27
+
28
+ set :use_sudo, false
29
+ set :deploy_to, "/home/#{user}/#{application}"
30
+
31
+ set :copy_exclude, %w(log tmp)
32
+ set :keep_releases, 10
33
+
34
+ role :app, domain
35
+ role :web, domain
36
+ role :db, domain, :primary => true
37
+
38
+ task :before_symlink do
39
+ run "cd #{release_path} && rake db:migrate RAILS_ENV=production"
40
+ end
41
+
42
+ namespace :deploy do
43
+ task :restart, :roles => :app do
44
+ run "touch #{deploy_to}/current/tmp/restart.txt"
45
+ end
46
+ end
47
+
48
+ namespace :log do
49
+ task :clean, :roles => :app do
50
+ run "rm #{deploy_to}/current/log/production.log"
51
+ end
52
+ after "log:clean", "deploy:restart"
53
+
54
+ task :tail, :roles => :app do
55
+ run "tail -f #{deploy_to}/current/log/production.log" do |channel, stream, data|
56
+ puts data
57
+ end
58
+ end
59
+ end
60
+
61
+ namespace :db do
62
+ task :backup, :roles => :db do
63
+ require 'yaml'
64
+ cfg = YAML::load_file('config/database.yml')
65
+ db = cfg['production']
66
+ mysql_opts = "-u #{db['username']} -p#{db['password']} -h #{db['host']} #{db['database']}"
67
+ filename = "dump-#{application}-#{Time.now.utc.strftime("%Y%m%d%H%M%S")}.sql"
68
+ filename_path = "~/#{filename}"
69
+ run "mysqldump #{mysql_opts} > #{filename_path}"
70
+ get filename_path, filename
71
+ run "rm #{filename_path}"
72
+ end
73
+ end
74
+
@@ -0,0 +1,8 @@
1
+ Description:
2
+
3
+ Cria arquivo de configuração para envio de e-mails utilizando servidor smtp da Hostnet. Recomendamos a criação de uma conta de e-mail no painel apenas para ficar responsável pelo envio de e-mails.
4
+
5
+ Usage:
6
+
7
+ script/generate hostnet_email mailer_username mailer_password domain
8
+
@@ -0,0 +1,22 @@
1
+ class HostnetEmailGenerator < Rails::Generator::NamedBase
2
+ attr_reader :username, :password, :domain
3
+
4
+ def initialize(runtime_args, runtime_options = {})
5
+ super
6
+ usage if runtime_args.size != 3
7
+ @username = runtime_args.shift
8
+ @password = runtime_args.shift
9
+ @domain = runtime_args.shift
10
+ end
11
+
12
+ def manifest
13
+ record do |m|
14
+ m.template "mail.rb", "config/initializers/mail.rb"
15
+ end
16
+ end
17
+
18
+ protected
19
+ def banner
20
+ "Usage: script/generate hostnet_email mailer_username mailer_password domain"
21
+ end
22
+ end