-
-
Save Jekis/29451f8c18a04147e14f to your computer and use it in GitHub Desktop.
Capistrano Symfony Parameters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace :symfony do | |
namespace :parameters do | |
desc "Create parameters.yml file based on the parameters.yml.dist one. Ask for all parameters." | |
task :create do | |
on roles(:all) do | |
if not test("[ -f #{shared_path}/app/config/parameters.yml ]") | |
distParameters = YAML::load(capture("cat #{release_path}/app/config/parameters.yml.dist")) | |
parameters = { "parameters" => {} } | |
distParameters['parameters'].each do |k,v| | |
set :parameter, ask(k, v) | |
parameters['parameters'][k] = fetch(:parameter) | |
end | |
upload! StringIO.new(parameters.to_yaml(line_width: -1)), "#{shared_path}/app/config/parameters.yml" | |
end | |
end | |
end | |
desc "Update parameters.yml file based on the parameters.yml.dist one. Old parameters will be deleted, for the new ones you will be asked." | |
task :update do | |
on roles(:all) do | |
if test("[ -f #{shared_path}/app/config/parameters.yml ]") | |
distParameters = YAML::load(capture("cat #{release_path}/app/config/parameters.yml.dist")) | |
parameters = YAML::load(capture("cat #{shared_path}/app/config/parameters.yml")) | |
# Remove old parameters | |
parameters['parameters'].each do |k,v| | |
if !distParameters['parameters'].has_key?(k) | |
parameters['parameters'].delete(k) | |
end | |
end | |
# Ask for new parameters | |
distParameters['parameters'].each do |k,v| | |
if !parameters['parameters'].has_key?(k) | |
set :parameter, ask(k, v) | |
parameters['parameters'][k] = fetch(:parameter) | |
end | |
end | |
upload! StringIO.new(parameters.to_yaml(line_width: -1)), "#{shared_path}/app/config/parameters.yml" | |
end | |
end | |
end | |
desc "Edit parameters." | |
task :edit do | |
on roles(:all) do | |
if test("[ -f #{shared_path}/app/config/parameters.yml ]") | |
parameters = YAML::load(capture("cat #{shared_path}/app/config/parameters.yml")) | |
# Ask for new values | |
parameters['parameters'].each do |k,v| | |
set :parameter, ask(k, v) | |
parameters['parameters'][k] = fetch(:parameter) | |
end | |
upload! StringIO.new(parameters.to_yaml(line_width: -1)), "#{shared_path}/app/config/parameters.yml" | |
end | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment