Sha256: fe57cc49a6d9e14faf90e9bee5d2d32668b39cb8bfbeb863d472358a5975e819

Contents?: true

Size: 1.33 KB

Versions: 4

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

require 'avm/eac_asciidoctor_base0/instances/build'
require 'eac_cli/core_ext'
require 'os'

module Avm
  module EacAsciidoctorBase0
    module Sources
      module Runners
        class Build
          runner_with :help do
            desc 'Build the project'
            arg_opt '-d', '--target-dir', 'Directory to build'
            bool_opt '--open', 'Show the result.'
          end

          def run
            start_banner
            build.perform
            open
          end

          private

          def build_uncached
            ::Avm::EacAsciidoctorBase0::Instances::Build.new(
              runner_context.call(:source).instance,
              target_directory: parsed.target_dir
            )
          end

          def default_target_directory
            runner_context.call(:project).root.join('build')
          end

          def open
            return unless parsed.open?

            infom "Opening \"#{open_path}\"..."
            ::EacRubyUtils::Envs.local.command(OS.open_file_command, open_path).system!
          end

          def open_path
            build.root_document.body_target_path
          end

          def start_banner
            runner_context.call(:source_banner)
            infov 'Target directory', build.target_directory
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
avm-eac_asciidoctor_base0-0.11.0 lib/avm/eac_asciidoctor_base0/sources/runners/build.rb
eac_tools-0.43.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/build.rb
avm-eac_asciidoctor_base0-0.10.0 lib/avm/eac_asciidoctor_base0/sources/runners/build.rb
eac_tools-0.42.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/build.rb