aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/commands/secrets
diff options
context:
space:
mode:
authorLeonel Galán <leonel@getstealz.com>2017-06-16 15:09:15 -0400
committerGitHub <noreply@github.com>2017-06-16 15:09:15 -0400
commit095036467e4e06e56452da94077500d428dd0eed (patch)
tree3443e6779bf5a1d0f73f3c6ceb5f22cdee12e303 /railties/lib/rails/commands/secrets
parent0804e58e1e6a52190a950f863622102b6b21ccb8 (diff)
parentb55cf266f9ccadf49276de230a8b0c2076f05202 (diff)
downloadrails-095036467e4e06e56452da94077500d428dd0eed.tar.gz
rails-095036467e4e06e56452da94077500d428dd0eed.tar.bz2
rails-095036467e4e06e56452da94077500d428dd0eed.zip
Merge branch 'master' into bug/filtered_parameters_class
Diffstat (limited to 'railties/lib/rails/commands/secrets')
-rw-r--r--railties/lib/rails/commands/secrets/secrets_command.rb23
1 files changed, 17 insertions, 6 deletions
diff --git a/railties/lib/rails/commands/secrets/secrets_command.rb b/railties/lib/rails/commands/secrets/secrets_command.rb
index 03a640bd65..5f077a5bcb 100644
--- a/railties/lib/rails/commands/secrets/secrets_command.rb
+++ b/railties/lib/rails/commands/secrets/secrets_command.rb
@@ -13,10 +13,7 @@ module Rails
end
def setup
- require "rails/generators"
- require "rails/generators/rails/encrypted_secrets/encrypted_secrets_generator"
-
- Rails::Generators::EncryptedSecretsGenerator.start
+ generator.start
end
def edit
@@ -34,8 +31,7 @@ module Rails
require_application_and_environment!
Rails::Secrets.read_for_editing do |tmp_path|
- say "Waiting for secrets file to be saved. Abort with Ctrl-C."
- system("\$EDITOR #{tmp_path}")
+ system("#{ENV["EDITOR"]} #{tmp_path}")
end
say "New secrets encrypted and saved."
@@ -43,7 +39,22 @@ module Rails
say "Aborted changing encrypted secrets: nothing saved."
rescue Rails::Secrets::MissingKeyError => error
say error.message
+ rescue Errno::ENOENT => error
+ raise unless error.message =~ /secrets\.yml\.enc/
+
+ Rails::Secrets.read_template_for_editing do |tmp_path|
+ system("#{ENV["EDITOR"]} #{tmp_path}")
+ generator.skip_secrets_file { setup }
+ end
end
+
+ private
+ def generator
+ require "rails/generators"
+ require "rails/generators/rails/encrypted_secrets/encrypted_secrets_generator"
+
+ Rails::Generators::EncryptedSecretsGenerator
+ end
end
end
end