2017-10-07 21:32:18 -04:00
|
|
|
# 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
|
|
|
|
|
2018-11-21 05:20:47 -05:00
|
|
|
if !File.exist?(credentials_path)
|
2017-10-07 21:32:18 -04:00
|
|
|
alert_error 'You are not currently signed in.'
|
2018-11-21 05:20:47 -05:00
|
|
|
elsif !File.writable?(credentials_path)
|
2017-10-07 21:32:18 -04:00
|
|
|
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
|