summaryrefslogtreecommitdiff
path: root/lib/rubygems/commands/signout_command.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-08 01:32:18 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-08 01:32:18 +0000
commitc00e84327f14845bd484e76b5ee5dfeb1fa9ce3d (patch)
tree9f558dafa363f4f0118d504a50cd4461e2821cd1 /lib/rubygems/commands/signout_command.rb
parent6b05153a3a75b74b64553d6a46f501d9ee0f0376 (diff)
Merge rubygems master.
This is RC version of Rubygems 2.7.0. https://github.com/rubygems/rubygems/commit/688fb7e83c13c3fe7c2bb03c49a2db4c82852aee git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/commands/signout_command.rb')
-rw-r--r--lib/rubygems/commands/signout_command.rb33
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