Sha256: 14b11e4d924e28c173f767a06e9073929e0e480a512756270a684dcc77c94692

Contents?: true

Size: 1.34 KB

Versions: 6

Compression:

Stored size: 1.34 KB

Contents

module Inesita
  class CLI < Thor
    include Thor::Actions

    check_unknown_options!

    namespace :watch

    desc 'watch [OPTIONS]', 'Watch files and build Inesita app'

    method_option :force,
                  aliases: :f,
                  type: :boolean,
                  default: true,
                  desc: 'force overwrite'

    method_option :destination_dir,
                  aliases: :d,
                  type: :string,
                  default: Inesita::Config::BUILD_DIR,
                  desc: 'destination directory'

    method_option :source_dir,
                  aliases: :s,
                  type: :string,
                  default: Inesita::Config::APP_DIR,
                  desc: 'source (app) dir'

    method_option :static_dir,
                  aliases: :t,
                  type: :string,
                  default: Inesita::Config::STATIC_DIR,
                  desc: 'static dir'

    def watch
      puts 'building...'
      safe_build
      puts 'done.'
      Listen.to(options[:source_dir]) do |_modified, _added, _removed|
        puts "rebuilding..."
        safe_build
        puts "done."
      end.start
      loop { sleep 1000 }
    end

    no_commands do
      def safe_build
        begin
          build
        rescue => e
          puts 'build error:'
          puts e
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
inesita-1.0.pre.9 lib/inesita/cli/watch.rb
inesita-1.0.pre.8 lib/inesita/cli/watch.rb
inesita-1.0.pre.7 lib/inesita/cli/watch.rb
inesita-1.0.pre.6 lib/inesita/cli/watch.rb
inesita-1.0.pre.5 lib/inesita/cli/watch.rb
inesita-1.0.pre.4 lib/inesita/cli/watch.rb