Sha256: 5c092309ee290eeeeedd26a01efce473e466555266e34fb9f52ce6e806d1042e

Contents?: true

Size: 1.75 KB

Versions: 13

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

require 'eac_cli/core_ext'
require 'eac_ruby_utils/fs/traversable'
require 'ehbrs/vg/wii/file_move'
require 'ehbrs/vg/wii/game_file'

module Ehbrs
  class Runner
    class Vg
      class Wii
        include ::EacRubyUtils::Fs::Traversable

        runner_with :help do
          desc 'Manipulação de imagens de jogo Wii.'
          bool_opt '-R', '--recursive', 'Busca arquivos recursivamente.'
          bool_opt '-d', '--dump', 'Mostra todos os atributos do jogo.'
          arg_opt '-m', '--move', 'Move o arquivo.'
          bool_opt '-c', '--confirm', 'Confirma o movimento do arquivo.'
          pos_arg 'paths', repeat: true
        end

        def run
          infov 'Recursive?', traverser_new.recursive?
          parsed.paths.each do |path|
            traverser_check_path(path)
          end
        end

        private

        def confirm?
          parsed.confirm?
        end

        def dump(game)
          return unless parsed.dump?

          game.properties.each do |name, value|
            infov "  * #{name}", value
          end
        end

        def move(game)
          return if move_arg.blank?

          file_move = ::Ehbrs::Vg::Wii::FileMove.new(game, game.format(move_arg))
          infov '  * Target path',
                file_move.target.to_s.colorize(file_move.change? ? :light_white : :light_black)
          file_move.run if confirm?
        end

        def move_arg
          parsed.move
        end

        def traverser_recursive
          parsed.recursive
        end

        def traverser_check_file(path)
          game = ::Ehbrs::Vg::Wii::GameFile.new(path)
          return unless game.valid?

          infom game.wit_path
          dump(game)
          move(game)
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
ehbrs-tools-0.23.0 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.22.0 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.21.0 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.20.0 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.19.0 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.18.0 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.17.0 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.16.5 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.16.4 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.16.3 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.16.2 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.16.1 lib/ehbrs/runner/vg/wii.rb
ehbrs-tools-0.16.0 lib/ehbrs/runner/vg/wii.rb