Skip to content

Commit

Permalink
Merge pull request #5034 from rubygems/remove-gem-server
Browse files Browse the repository at this point in the history
Removed the related code of `gem server`
  • Loading branch information
hsbt committed Nov 1, 2021
2 parents 974799c + f912031 commit 3613737
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 1,615 deletions.
2 changes: 0 additions & 2 deletions Manifest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,6 @@ lib/rubygems/security/policy.rb
lib/rubygems/security/signer.rb
lib/rubygems/security/trust_dir.rb
lib/rubygems/security_option.rb
lib/rubygems/server.rb
lib/rubygems/source.rb
lib/rubygems/source/git.rb
lib/rubygems/source/installed.rb
Expand Down Expand Up @@ -676,7 +675,6 @@ test/rubygems/test_gem_security.rb
test/rubygems/test_gem_security_policy.rb
test/rubygems/test_gem_security_signer.rb
test/rubygems/test_gem_security_trust_dir.rb
test/rubygems/test_gem_server.rb
test/rubygems/test_gem_silent_ui.rb
test/rubygems/test_gem_source.rb
test/rubygems/test_gem_source_fetch_problem.rb
Expand Down
91 changes: 14 additions & 77 deletions lib/rubygems/commands/server_command.rb
Original file line number Diff line number Diff line change
@@ -1,88 +1,25 @@
# frozen_string_literal: true
require_relative '../command'
require_relative '../server'
require_relative '../deprecate'

class Gem::Commands::ServerCommand < Gem::Command
extend Gem::Deprecate
rubygems_deprecate_command

def initialize
super 'server', 'Documentation and gem repository HTTP server',
:port => 8808, :gemdir => [], :daemon => false

OptionParser.accept :Port do |port|
if port =~ /\A\d+\z/
port = Integer port
raise OptionParser::InvalidArgument, "#{port}: not a port number" if
port > 65535

port
else
begin
Socket.getservbyname port
rescue SocketError
raise OptionParser::InvalidArgument, "#{port}: no such named service"
end
unless defined? Gem::Commands::ServerCommand
class Gem::Commands::ServerCommand < Gem::Command
def initialize
super('server', 'Starts up a web server that hosts the RDoc (requires rubygems-server)')
begin
Gem::Specification.find_by_name('rubygems-server').activate
rescue Gem::LoadError
# no-op
end
end

add_option '-p', '--port=PORT', :Port,
'port to listen on' do |port, options|
options[:port] = port
end

add_option '-d', '--dir=GEMDIR',
'directories from which to serve gems',
'multiple directories may be provided' do |gemdir, options|
options[:gemdir] << File.expand_path(gemdir)
def description # :nodoc:
<<-EOF
The server command has been moved to the rubygems-server gem.
EOF
end

add_option '--[no-]daemon', 'run as a daemon' do |daemon, options|
options[:daemon] = daemon
def execute
alert_error "Install the rubygems-server gem for the server command"
end

add_option '-b', '--bind=HOST,HOST',
'addresses to bind', Array do |address, options|
options[:addresses] ||= []
options[:addresses].push(*address)
end

add_option '-l', '--launch[=COMMAND]',
'launches a browser window',
"COMMAND defaults to 'start' on Windows",
"and 'open' on all other platforms" do |launch, options|
launch ||= Gem.win_platform? ? 'start' : 'open'
options[:launch] = launch
end
end

def defaults_str # :nodoc:
"--port 8808 --dir #{Gem.dir} --no-daemon"
end

def description # :nodoc:
<<-EOF
The server command starts up a web server that hosts the RDoc for your
installed gems and can operate as a server for installation of gems on other
machines.
The cache files for installed gems must exist to use the server as a source
for gem installation.
To install gems from a running server, use `gem install GEMNAME --source
http://gem_server_host:8808`
You can set up a shortcut to gem server documentation using the URL:
http://localhost:8808/rdoc?q=%s - Firefox
http://localhost:8808/rdoc?q=* - LaunchBar
EOF
end

def execute
options[:gemdir] = Gem.path if options[:gemdir].empty?
Gem::Server.run options
end
end
Loading

0 comments on commit 3613737

Please sign in to comment.