From 175fd5b8ba7a05bf5298a88a9a9f67aef4be0036 Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 3 Jun 2020 20:18:52 +0200 Subject: [PATCH] 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). --- Gemfile | 1 - Gemfile.lock | 3 --- lib/tasks/mastodon.rake | 7 ++----- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 00033545f7..0be4b58667 100644 --- a/Gemfile +++ b/Gemfile @@ -94,7 +94,6 @@ gem 'simple_form', '~> 5.0' gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie' gem 'stoplight', '~> 2.2.0' gem 'strong_migrations', '~> 0.6' -gem 'tty-command', '~> 0.9', require: false gem 'tty-prompt', '~> 0.21', require: false gem 'twitter-text', '~> 1.14' gem 'tzinfo-data', '~> 1.2020' diff --git a/Gemfile.lock b/Gemfile.lock index fe44c85ff8..fef4d342bb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -623,8 +623,6 @@ GEM thwait (0.1.0) tilt (2.0.10) tty-color (0.5.1) - tty-command (0.9.0) - pastel (~> 0.7.0) tty-cursor (0.7.1) tty-prompt (0.21.0) necromancer (~> 0.5.0) @@ -792,7 +790,6 @@ DEPENDENCIES strong_migrations (~> 0.6) thor (~> 0.20) thwait (~> 0.1.0) - tty-command (~> 0.9) tty-prompt (~> 0.21) twitter-text (~> 1.14) tzinfo-data (~> 1.2020) diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index a41080a63f..9e80989ef0 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!'