diff options
Diffstat (limited to 'actionmailbox/lib/tasks')
-rw-r--r-- | actionmailbox/lib/tasks/ingress.rake | 24 | ||||
-rw-r--r-- | actionmailbox/lib/tasks/install.rake | 20 |
2 files changed, 44 insertions, 0 deletions
diff --git a/actionmailbox/lib/tasks/ingress.rake b/actionmailbox/lib/tasks/ingress.rake new file mode 100644 index 0000000000..f775bbdfd7 --- /dev/null +++ b/actionmailbox/lib/tasks/ingress.rake @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +namespace :action_mailbox do + namespace :ingress do + desc "Pipe an inbound email from STDIN to the Postfix ingress (URL and INGRESS_PASSWORD required)" + task :postfix do + require "active_support" + require "active_support/core_ext/object/blank" + require "action_mailbox/postfix_relayer" + + url, password = ENV.values_at("URL", "INGRESS_PASSWORD") + + if url.blank? || password.blank? + print "4.3.5 URL and INGRESS_PASSWORD are required" + exit 1 + end + + ActionMailbox::PostfixRelayer.new(url: url, password: password).relay(STDIN.read).tap do |result| + print result.output + exit result.success? + end + end + end +end diff --git a/actionmailbox/lib/tasks/install.rake b/actionmailbox/lib/tasks/install.rake new file mode 100644 index 0000000000..0885e2d6a5 --- /dev/null +++ b/actionmailbox/lib/tasks/install.rake @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +namespace :action_mailbox do + # Prevent migration installation task from showing up twice. + Rake::Task["install:migrations"].clear_comments + + desc "Copy over the migration" + task install: %w[ environment run_installer copy_migrations ] + + task :run_installer do + installer_template = File.expand_path("../rails/generators/installer.rb", __dir__) + system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{installer_template}" + end + + task :copy_migrations do + Rake::Task["active_storage:install:migrations"].invoke + Rake::Task["railties:install:migrations"].reenable # Otherwise you can't run 2 migration copy tasks in one invocation + Rake::Task["action_mailbox:install:migrations"].invoke + end +end |