diff options
Diffstat (limited to 'lib/rubygems/commands/signout_command.rb')
-rw-r--r-- | lib/rubygems/commands/signout_command.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/rubygems/commands/signout_command.rb b/lib/rubygems/commands/signout_command.rb new file mode 100644 index 0000000000..2452e8cae1 --- /dev/null +++ b/lib/rubygems/commands/signout_command.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true +require 'rubygems/command' + +class Gem::Commands::SignoutCommand < Gem::Command + + def initialize + super 'signout', 'Sign out from all the current sessions.' + end + + def description # :nodoc: + 'The `signout` command is used to sign out from all current sessions,'\ + ' allowing you to sign in using a different set of credentials.' + end + + def usage # :nodoc: + program_name + end + + def execute + credentials_path = Gem.configuration.credentials_path + + if !File.exist?(credentials_path) then + alert_error 'You are not currently signed in.' + elsif !File.writable?(credentials_path) then + alert_error "File '#{Gem.configuration.credentials_path}' is read-only."\ + ' Please make sure it is writable.' + else + Gem.configuration.unset_api_key! + say 'You have successfully signed out from all sessions.' + end + end + +end |