Sha256: 53142b7e8584db16859eca08fad1a8f6f4fb07c4222bcb0a65871569c7b1ba10

Contents?: true

Size: 1.34 KB

Versions: 7

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

require "launchy"
require "rack"
require "rack/handler/puma"
require "sinatra"

require "mihari/web/helpers/json"

require "mihari/web/controllers/base_controller"

require "mihari/web/controllers/alerts_controller"
require "mihari/web/controllers/artifacts_controller"
require "mihari/web/controllers/command_controller"
require "mihari/web/controllers/config_controller"
require "mihari/web/controllers/sources_controller"
require "mihari/web/controllers/tags_controller"

module Mihari
  class App < Sinatra::Base
    set :root, File.dirname(__FILE__)
    set :public_folder, File.join(root, "public")

    get "/" do
      send_file File.join(settings.public_folder, "index.html")
    end

    use Mihari::Controllers::AlertsController
    use Mihari::Controllers::ArtifactsController
    use Mihari::Controllers::CommandController
    use Mihari::Controllers::ConfigController
    use Mihari::Controllers::SourcesController
    use Mihari::Controllers::TagsController

    class << self
      def run!(port: 9292, host: "localhost")
        url = "http://#{host}:#{port}"

        Rack::Handler::Puma.run self, Port: port, Host: host do |server|
          Launchy.open url

          [:INT, :TERM].each do |sig|
            trap(sig) do
              server.shutdown
            end
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mihari-3.1.0 lib/mihari/web/app.rb
mihari-3.0.1 lib/mihari/web/app.rb
mihari-3.0.0 lib/mihari/web/app.rb
mihari-2.4.0 lib/mihari/web/app.rb
mihari-2.3.1 lib/mihari/web/app.rb
mihari-2.3.0 lib/mihari/web/app.rb
mihari-2.2.1 lib/mihari/web/app.rb