mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Tell users how to assign a $EDITOR.
In case there's no $EDITOR assigned users would see a cryptic: ``` % EDITOR= bin/rails secrets:edit Waiting for secrets file to be saved. Abort with Ctrl-C. sh: /var/folders/wd/xnncwqp96rj0v1y2nms64mq80000gn/T/secrets.yml.enc: Permission denied New secrets encrypted and saved. ``` That error is misleading, so give a hint in this easily detectable case. Fixes #28143.
This commit is contained in:
parent
b61a56541a
commit
82f7dc6178
2 changed files with 35 additions and 0 deletions
|
@ -18,6 +18,17 @@ module Rails
|
|||
end
|
||||
|
||||
def edit
|
||||
if ENV["EDITOR"].empty?
|
||||
say "No $EDITOR to open decrypted secrets in. Assign one like this:"
|
||||
say ""
|
||||
say %(EDITOR="mate --wait" bin/rails secrets:edit)
|
||||
say ""
|
||||
say "For editors that fork and exit immediately, it's important to pass a wait flag,"
|
||||
say "otherwise the secrets will be saved immediately with no chance to edit."
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
require_application_and_environment!
|
||||
|
||||
Rails::Secrets.read_for_editing do |tmp_path|
|
||||
|
|
24
railties/test/commands/secrets_test.rb
Normal file
24
railties/test/commands/secrets_test.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
require "isolation/abstract_unit"
|
||||
require "rails/command"
|
||||
require "rails/commands/secrets/secrets_command"
|
||||
|
||||
class Rails::Command::SecretsCommandTest < ActiveSupport::TestCase
|
||||
include ActiveSupport::Testing::Isolation
|
||||
|
||||
def setup
|
||||
build_app
|
||||
end
|
||||
|
||||
def teardown
|
||||
teardown_app
|
||||
end
|
||||
|
||||
test "edit without editor gives hint" do
|
||||
assert_match "No $EDITOR to open decrypted secrets in", run_edit_command(editor: "")
|
||||
end
|
||||
|
||||
private
|
||||
def run_edit_command(editor: "cat")
|
||||
Dir.chdir(app_path) { `EDITOR="#{editor}" bin/rails secrets:edit` }
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue