Sha256: 46c66d2be1d6a84165ab17f6177a642e18267a16c25e111d87423dc284c1a6af

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

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

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

require 'highline/import'

options = Balboa::CLI::Parser.parse(ARGV)

defaults = if options['skip_defaults']
             {}
           elsif File.exist?(Balboa::CONFIG_FILE)
             YAML.load_file(Balboa::CONFIG_FILE)
           else
             Balboa::CLI::Defaults.prompt(HighLine)
           end

options = defaults.merge(options)

interactor = Balboa::Interactor::InteractorBuilder.create(options)

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
  $stdout.puts(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.7 bin/balboa