Sha256: 153cb5e847070761ed38b11d04b4a50f3f656c84a49f4fa4cadc345384cdc9fc

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

require_relative '../lib/balboa'
require_relative '../lib/balboa/cli/parser_builder'
require_relative '../lib/balboa/interactor/interactor_builder'

require 'highline/import'

options = if File.exist?(Balboa::CONFIG_FILE)
  YAML.load_file(Balboa::CONFIG_FILE)
else
  Balboa::CLI::Defaults.prompt(HighLine)
end

Balboa::CLI::ParserBuilder.create(ARGV, options).parse!

raw_interactor = Balboa::Interactor::InteractorBuilder.create(options)
interactor = Balboa::Interactor::InteractorWrapper.new(raw_interactor)

app_last = Balboa::CLI::Command::LastCommand.new(interactor)
app_punch = Balboa::CLI::Command::PunchCommand.new(interactor, HighLine)
app_reset = Balboa::CLI::Command::ResetCommand.new
app_star_wars = Balboa::CLI::Command::StarWarsCommand.new

command = ARGV.first
app = Balboa::CLI::Application.new(command)
app.add_command(:last, app_last)
app.add_command(:punch, app_punch)
app.add_command(:reset, app_reset)
app.add_command(:star_wars, app_star_wars)

begin
  app.execute
rescue Balboa::CLI::Application::CommandNotFound
  $stdout.puts("\nCommand Not Found!")
  $stdout.puts("\nRun `balboa -h' to check available commands and options.")
rescue Balboa::Interactor::Command::LoginCommand::LoginFailure
  $stdout.puts("\nWrong e-mail or password!")
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
balboa-0.1.4 bin/balboa