lib/capistrano/node-deploy.rb in capistrano-node-deploy-1.1.0 vs lib/capistrano/node-deploy.rb in capistrano-node-deploy-1.2.0
- old
+ new
@@ -12,11 +12,11 @@
respawn
respawn limit 99 5
script
- exec sudo -u {{node_user}} NODE_ENV={{node_env}} {{node_binary}} {{current_path}}/{{app_command}} 2>> {{shared_path}}/{{node_env}}.err.log 1>> {{shared_path}}/{{node_env}}.out.log
+ exec sudo -u {{node_user}} NODE_ENV={{node_env}} {{app_environment}} {{node_binary}} {{current_path}}/{{app_command}} 2>> {{shared_path}}/{{node_env}}.err.log 1>> {{shared_path}}/{{node_env}}.out.log
end script
EOD
def remote_file_exists?(full_path)
'true' == capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
@@ -36,33 +36,33 @@
end
Capistrano::Configuration.instance(:must_exist).load do |configuration|
before "deploy", "deploy:create_release_dir"
before "deploy", "node:check_upstart_config"
- after "deploy:finalize_update", "node:install_packages"
- after "deploy:finalize_update", "node:restart"
+ after "deploy:update", "node:install_packages", "node:restart"
after "deploy:rollback", "node:restart"
package_json = MultiJson.load(File.open("package.json").read) rescue {}
set :application, package_json["name"] unless defined? application
set :app_command, package_json["main"] || "index.js" unless defined? app_command
+ set :app_environment, "" unless defined? app_environment
set :node_binary, "/usr/bin/node" unless defined? node_binary
set :node_env, "production" unless defined? node_env
set :node_user, "deploy" unless defined? node_user
- set :upstart_job_name, "#{application}-#{node_env}" unless defined? upstart_job_name
- set :upstart_file_path, "/etc/init/#{upstart_job_name}.conf" unless defined? upstart_file_path
+ set :upstart_job_name, lambda { "#{application}-#{node_env}" } unless defined? upstart_job_name
+ set :upstart_file_path, lambda { "/etc/init/#{upstart_job_name}.conf" } unless defined? upstart_file_path
namespace :node do
desc "Check required packages and install if packages are not installed"
task :install_packages do
run "mkdir -p #{shared_path}/node_modules"
- run "cp #{current_path}/package.json #{shared_path}"
+ run "cp #{release_path}/package.json #{shared_path}"
run "cd #{shared_path} && npm install"
- run "ln -s #{shared_path}/node_modules #{current_path}/node_modules"
+ run "ln -s #{shared_path}/node_modules #{release_path}/node_modules"
end
task :check_upstart_config do
create_upstart_config if remote_file_differs?(upstart_file_path, generate_upstart_config)
end
@@ -89,10 +89,10 @@
sudo "stop #{upstart_job_name}"
end
desc "Restart the node application"
task :restart do
- sudo "stop #{upstart_job_name}"
+ sudo "stop #{upstart_job_name}; true"
sudo "start #{upstart_job_name}"
end
end
namespace :deploy do
\ No newline at end of file