Sha256: 400de8b3befc1aaf4f264378165f1744a3e13eda2f7ebca54a6c49402c902ac9

Contents?: true

Size: 1.77 KB

Versions: 8

Compression:

Stored size: 1.77 KB

Contents

# frozen_string_literal: true

usage 'view [options]'
summary 'start the web server that serves static files'
description <<~EOS
  Start the static web server. Unless specified, the web server will run on port
  3000 and listen on all IP addresses. Running this static web server requires
  `adsf` (not `asdf`!).
EOS

required :H, :handler, 'specify the handler to use (webrick/mongrel/...)'
required :o, :host,    'specify the host to listen on (default: 127.0.0.1)'
required :p, :port,    'specify the port to listen on (default: 3000)'
flag :L, :'live-reload', 'reload on changes'

module Nanoc::CLI::Commands
  class View < ::Nanoc::CLI::CommandRunner
    DEFAULT_HANDLER_NAME = :thin

    def run
      load_adsf

      config = Nanoc::Int::ConfigLoader.new.new_from_cwd

      # Create output dir so that viewer/watcher doesn’t explode.
      FileUtils.mkdir_p(config[:output_dir])

      server =
        Adsf::Server.new(
          root: File.absolute_path(config[:output_dir]),
          live: options[:'live-reload'],
          index_filenames: config[:index_filenames],
          host: (options[:host] || '127.0.0.1'),
          port: (options[:port] || 3000).to_i,
          handler: options[:handler],
        )

      server.run
    end

    protected

    def load_adsf
      # Load adsf
      begin
        require 'adsf'
        return
      rescue LoadError
        $stderr.puts "Could not find the required 'adsf' gem, " \
          'which is necessary for the view command.'
      end

      # Check asdf
      begin
        require 'asdf'
        $stderr.puts "You appear to have 'asdf' installed, " \
          "but not 'adsf'. Please install 'adsf' (check the spelling)!"
      rescue LoadError
      end

      # Done
      exit 1
    end
  end
end

runner Nanoc::CLI::Commands::View

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
nanoc-4.9.3 lib/nanoc/cli/commands/view.rb
nanoc-4.9.2 lib/nanoc/cli/commands/view.rb
nanoc-4.9.1 lib/nanoc/cli/commands/view.rb
nanoc-4.9.0 lib/nanoc/cli/commands/view.rb
nanoc-4.8.19 lib/nanoc/cli/commands/view.rb
nanoc-4.8.18 lib/nanoc/cli/commands/view.rb
nanoc-4.8.17 lib/nanoc/cli/commands/view.rb
nanoc-4.8.16 lib/nanoc/cli/commands/view.rb