about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cli.rb4
-rw-r--r--lib/mastodon/settings_cli.rb26
-rw-r--r--lib/tasks/mastodon.rake25
3 files changed, 30 insertions, 25 deletions
diff --git a/lib/cli.rb b/lib/cli.rb
index 14a91c2db..208df660f 100644
--- a/lib/cli.rb
+++ b/lib/cli.rb
@@ -5,6 +5,7 @@ require_relative 'mastodon/media_cli'
 require_relative 'mastodon/emoji_cli'
 require_relative 'mastodon/accounts_cli'
 require_relative 'mastodon/feeds_cli'
+require_relative 'mastodon/settings_cli'
 
 module Mastodon
   class CLI < Thor
@@ -19,5 +20,8 @@ module Mastodon
 
     desc 'feeds SUBCOMMAND ...ARGS', 'Manage feeds'
     subcommand 'feeds', Mastodon::FeedsCLI
+
+    desc 'settings SUBCOMMAND ...ARGS', 'Manage dynamic settings'
+    subcommand 'settings', Mastodon::SettingsCLI
   end
 end
diff --git a/lib/mastodon/settings_cli.rb b/lib/mastodon/settings_cli.rb
new file mode 100644
index 000000000..87c321013
--- /dev/null
+++ b/lib/mastodon/settings_cli.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require_relative '../../config/boot'
+require_relative '../../config/environment'
+require_relative 'cli_helper'
+
+module Mastodon
+  class RegistrationsCLI < Thor
+    desc 'open', 'Open registrations'
+    def open
+      Setting.open_registrations = true
+      say('OK', :green)
+    end
+
+    desc 'close', 'Close registrations'
+    def close
+      Setting.open_registrations = false
+      say('OK', :green)
+    end
+  end
+
+  class SettingsCLI < Thor
+    desc 'registrations SUBCOMMAND ...ARGS', 'Manage state of registrations'
+    subcommand 'registrations', RegistrationsCLI
+  end
+end
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index ec8800819..ee9657b0e 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -1,7 +1,5 @@
 # frozen_string_literal: true
 
-require 'optparse'
-require 'colorize'
 require 'tty-command'
 require 'tty-prompt'
 
@@ -390,25 +388,6 @@ namespace :mastodon do
     end
   end
 
-  namespace :push do
-    desc 'Unsubscribes from PuSH updates of feeds nobody follows locally'
-    task clear: :environment do
-      Pubsubhubbub::UnsubscribeWorker.push_bulk(Account.remote.without_followers.where.not(subscription_expires_at: nil).pluck(:id))
-    end
-  end
-
-  namespace :settings do
-    desc 'Open registrations on this instance'
-    task open_registrations: :environment do
-      Setting.open_registrations = true
-    end
-
-    desc 'Close registrations on this instance'
-    task close_registrations: :environment do
-      Setting.open_registrations = false
-    end
-  end
-
   namespace :webpush do
     desc 'Generate VAPID key'
     task generate_vapid_key: :environment do
@@ -427,7 +406,3 @@ def disable_log_stdout!
   HttpLog.configuration.logger = dev_null
   Paperclip.options[:log]      = false
 end
-
-def prepare_for_options!
-  2.times { ARGV.shift }
-end