about summary refs log tree commit diff
path: root/lib/tasks/mastodon.rake
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-06-03 20:18:52 +0200
committerGitHub <noreply@github.com>2020-06-03 20:18:52 +0200
commit175fd5b8ba7a05bf5298a88a9a9f67aef4be0036 (patch)
tree6108b0b8f936fa0a8c7e83fbca0fd62fc90b3129 /lib/tasks/mastodon.rake
parentbf949346232b3db731675c1342f50d97fd4a7ef8 (diff)
Fix mastodon:setup choking on env variables containing '%' (#13940)
Fix a regression introduced in #13928, caused by TTY::Command building
shell commands by chaining string substitutions.

Ditch TTY::Command and use system instead (both do shell out).
Diffstat (limited to 'lib/tasks/mastodon.rake')
-rw-r--r--lib/tasks/mastodon.rake7
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index a41080a63..9e80989ef 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -1,6 +1,5 @@
 # frozen_string_literal: true
 
-require 'tty-command'
 require 'tty-prompt'
 
 namespace :mastodon do
@@ -334,8 +333,6 @@ namespace :mastodon do
       prompt.say 'This configuration will be written to .env.production'
 
       if prompt.yes?('Save configuration?')
-        cmd = TTY::Command.new(printer: :quiet)
-
         env_contents = env.each_pair.map do |key, value|
           if value.is_a?(String) && value =~ /[\s\#\\"]/
             if value =~ /[']/
@@ -367,7 +364,7 @@ namespace :mastodon do
           prompt.say 'Running `RAILS_ENV=production rails db:setup` ...'
           prompt.say "\n\n"
 
-          if cmd.run!(env.merge({ RAILS_ENV: 'production', SAFETY_ASSURED: 1 }), :rails, 'db:setup').failure?
+          if !system(env.transform_values(&:to_s).merge({ 'RAILS_ENV' => 'production', 'SAFETY_ASSURED' => '1' }), 'rails db:setup')
             prompt.error 'That failed! Perhaps your configuration is not right'
           else
             prompt.ok 'Done!'
@@ -382,7 +379,7 @@ namespace :mastodon do
           prompt.say 'Running `RAILS_ENV=production rails assets:precompile` ...'
           prompt.say "\n\n"
 
-          if cmd.run!(env.merge({ RAILS_ENV: 'production' }), :rails, 'assets:precompile').failure?
+          if !system(env.transform_values(&:to_s).merge({ 'RAILS_ENV' => 'production' }), 'rails assets:precompile')
             prompt.error 'That failed! Maybe you need swap space?'
           else
             prompt.say 'Done!'