aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/commands
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2017-05-23 21:54:01 +0200
committerKasper Timm Hansen <kaspth@gmail.com>2017-05-25 15:56:55 +0200
commit0338c81dc2ab6ef35fe68461e39c0bad0af5bb95 (patch)
tree61b3d298cc76ddf4e01995b15462d8d2c4285266 /railties/lib/rails/commands
parentf50471751942730e3311f8c04ae4d97365ab3243 (diff)
downloadrails-0338c81dc2ab6ef35fe68461e39c0bad0af5bb95.tar.gz
rails-0338c81dc2ab6ef35fe68461e39c0bad0af5bb95.tar.bz2
rails-0338c81dc2ab6ef35fe68461e39c0bad0af5bb95.zip
Reorder first secrets edit flow.
Setup config/secrets.yml.enc with template contents for people to edit. Then generate encryption key and encrypt the initial secrets.
Diffstat (limited to 'railties/lib/rails/commands')
-rw-r--r--railties/lib/rails/commands/secrets/secrets_command.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/railties/lib/rails/commands/secrets/secrets_command.rb b/railties/lib/rails/commands/secrets/secrets_command.rb
index 76e13a6e49..651411d444 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
@@ -42,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("\$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