procon_bypass_man 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/Gemfile.lock +3 -3
- data/README.md +1 -8
- data/Steepfile +0 -1
- data/bin/generate_output_report +18 -0
- data/docs/getting_started.md +13 -9
- data/docs/setting/splatoon3_macro_dasei_cancel.md +7 -0
- data/docs/setting/{splatoon3_rotation_forward_stick.md → splatoon3_rotation_left_stick.md} +1 -1
- data/lib/procon_bypass_man/background/jobs/post_completed_remote_action_job.rb +20 -0
- data/lib/procon_bypass_man/background/jobs/report_info_log_job.rb +11 -0
- data/lib/procon_bypass_man/background/jobs/report_warning_job.rb +11 -0
- data/lib/procon_bypass_man/background.rb +2 -0
- data/lib/procon_bypass_man/buttons_setting_configuration/loader.rb +6 -0
- data/lib/procon_bypass_man/buttons_setting_configuration/metadata_loader.rb +27 -0
- data/lib/procon_bypass_man/buttons_setting_configuration/validator.rb +4 -4
- data/lib/procon_bypass_man/bypass/bypass_command.rb +2 -2
- data/lib/procon_bypass_man/bypass/procon_to_switch.rb +3 -0
- data/lib/procon_bypass_man/commands/send_info_log_command.rb +11 -0
- data/lib/procon_bypass_man/commands/send_warning_command.rb +18 -0
- data/lib/procon_bypass_man/commands.rb +2 -0
- data/lib/procon_bypass_man/configuration.rb +1 -1
- data/lib/procon_bypass_man/procon.rb +22 -11
- data/lib/procon_bypass_man/procon_display/status.rb +1 -0
- data/lib/procon_bypass_man/procon_display.rb +0 -1
- data/lib/procon_bypass_man/{remote_macro → remote_action}/queue_over_process.rb +2 -2
- data/lib/procon_bypass_man/{remote_macro/remote_macro_object.rb → remote_action/remote_action_object.rb} +1 -1
- data/lib/procon_bypass_man/{remote_macro/remote_macro_receiver.rb → remote_action/remote_action_receiver.rb} +8 -7
- data/lib/procon_bypass_man/remote_action/remote_action_sender.rb +9 -0
- data/lib/procon_bypass_man/remote_action/remote_pbm_job/base_action.rb +55 -0
- data/lib/procon_bypass_man/remote_action/remote_pbm_job/change_pbm_version_action.rb +31 -0
- data/lib/procon_bypass_man/remote_action/remote_pbm_job/commands/run_remote_pbm_job_dispatch_command.rb +29 -0
- data/lib/procon_bypass_man/{remote_pbm_action/commands/update_remote_pbm_action_status_command.rb → remote_action/remote_pbm_job/commands/update_remote_pbm_job_status_command.rb} +2 -2
- data/lib/procon_bypass_man/remote_action/remote_pbm_job/reboot_os_action.rb +24 -0
- data/lib/procon_bypass_man/remote_action/remote_pbm_job/report_procon_status.rb +25 -0
- data/lib/procon_bypass_man/remote_action/remote_pbm_job/restore_pbm_setting.rb +42 -0
- data/lib/procon_bypass_man/remote_action/remote_pbm_job/stop_pbm_action.rb +23 -0
- data/lib/procon_bypass_man/{remote_pbm_action/value_objects/remote_pbm_action_object.rb → remote_action/remote_pbm_job/value_objects/remote_pbm_job_object.rb} +2 -2
- data/lib/procon_bypass_man/remote_action/remote_pbm_job.rb +45 -0
- data/lib/procon_bypass_man/remote_action/task.rb +14 -0
- data/lib/procon_bypass_man/{remote_macro → remote_action}/task_queue.rb +1 -1
- data/lib/procon_bypass_man/remote_action.rb +19 -0
- data/lib/procon_bypass_man/support/callbacks.rb +1 -0
- data/lib/procon_bypass_man/support/{update_remote_pbm_action_status_http_client.rb → update_remote_pbm_job_status_http_client.rb} +1 -1
- data/lib/procon_bypass_man/version.rb +1 -1
- data/lib/procon_bypass_man/websocket/client.rb +42 -26
- data/lib/procon_bypass_man.rb +5 -7
- data/procon_bypass_man.gemspec +1 -1
- data/project_template/app.rb +1 -1
- data/project_template/app.rb.erb +1 -1
- data/sig/main.rbs +0 -6
- metadata +30 -23
- data/lib/procon_bypass_man/procon_display/bypass_hook.rb +0 -12
- data/lib/procon_bypass_man/remote_macro/remote_macro_sender.rb +0 -8
- data/lib/procon_bypass_man/remote_macro/task.rb +0 -2
- data/lib/procon_bypass_man/remote_macro.rb +0 -16
- data/lib/procon_bypass_man/remote_pbm_action/base_action.rb +0 -53
- data/lib/procon_bypass_man/remote_pbm_action/change_pbm_version_action.rb +0 -28
- data/lib/procon_bypass_man/remote_pbm_action/commands/run_remote_pbm_action_dispatch_command.rb +0 -21
- data/lib/procon_bypass_man/remote_pbm_action/reboot_os_action.rb +0 -22
- data/lib/procon_bypass_man/remote_pbm_action/restore_pbm_setting.rb +0 -41
- data/lib/procon_bypass_man/remote_pbm_action/stop_pbm_action.rb +0 -21
- data/lib/procon_bypass_man/remote_pbm_action.rb +0 -36
| @@ -1,53 +0,0 @@ | |
| 1 | 
            -
            module ProconBypassMan
         | 
| 2 | 
            -
              module RemotePbmAction
         | 
| 3 | 
            -
                class ActionUnexpectedError < StandardError; end
         | 
| 4 | 
            -
                class NeedPbmVersionError < ActionUnexpectedError; end
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                class BaseAction
         | 
| 7 | 
            -
                  attr_accessor :pbm_job_uuid
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                  # @param [String] pbm_job_uuid
         | 
| 10 | 
            -
                  def initialize(pbm_job_uuid: )
         | 
| 11 | 
            -
                    self.pbm_job_uuid = pbm_job_uuid
         | 
| 12 | 
            -
                  end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                  # @return [void]
         | 
| 15 | 
            -
                  def action_content(_args)
         | 
| 16 | 
            -
                    raise NotImplementedError, nil
         | 
| 17 | 
            -
                  end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                  # @param [Hash] args
         | 
| 20 | 
            -
                  # @return [void]
         | 
| 21 | 
            -
                  def run!(job_args: )
         | 
| 22 | 
            -
                    before_action_callback
         | 
| 23 | 
            -
                    action_content(args: job_args)
         | 
| 24 | 
            -
                    after_action_callback
         | 
| 25 | 
            -
                  rescue => e
         | 
| 26 | 
            -
                    be_failed
         | 
| 27 | 
            -
                    ProconBypassMan::SendErrorCommand.execute(error: e)
         | 
| 28 | 
            -
                  end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                  private
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                  # @return [void]
         | 
| 33 | 
            -
                  def before_action_callback; end
         | 
| 34 | 
            -
                  # @return [void]
         | 
| 35 | 
            -
                  def after_action_callback; end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                  # @return [void]
         | 
| 38 | 
            -
                  def be_failed
         | 
| 39 | 
            -
                    ProconBypassMan::UpdateRemotePbmActionStatusCommand.new(pbm_job_uuid: pbm_job_uuid).execute(to_status: :failed)
         | 
| 40 | 
            -
                  end
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                  # @return [void]
         | 
| 43 | 
            -
                  def be_in_progress
         | 
| 44 | 
            -
                    ProconBypassMan::UpdateRemotePbmActionStatusCommand.new(pbm_job_uuid: pbm_job_uuid).execute(to_status: :in_progress)
         | 
| 45 | 
            -
                  end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                  # @return [void]
         | 
| 48 | 
            -
                  def be_processed
         | 
| 49 | 
            -
                    ProconBypassMan::UpdateRemotePbmActionStatusCommand.new(pbm_job_uuid: pbm_job_uuid).execute(to_status: :processed)
         | 
| 50 | 
            -
                  end
         | 
| 51 | 
            -
                end
         | 
| 52 | 
            -
              end
         | 
| 53 | 
            -
            end
         | 
| @@ -1,28 +0,0 @@ | |
| 1 | 
            -
            module ProconBypassMan
         | 
| 2 | 
            -
              module RemotePbmAction
         | 
| 3 | 
            -
                class ChangePbmVersionAction < BaseAction
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  def action_content(args: )
         | 
| 6 | 
            -
                    require "pbmenv"
         | 
| 7 | 
            -
                    ProconBypassMan.logger.info "execute ChangePbmVersionAction!"
         | 
| 8 | 
            -
                    pbm_version = args["pbm_version"] or raise(ProconBypassMan::RemotePbmAction::NeedPbmVersionError, "pbm_versionが必要です, #{args.inspect}")
         | 
| 9 | 
            -
                    Pbmenv.uninstall(pbm_version) # 途中でシャットダウンしてしまった、とか状態が途中の状態かもしれないので一旦消す
         | 
| 10 | 
            -
                    Pbmenv.install(pbm_version, enable_pbm_cloud: true)
         | 
| 11 | 
            -
                    Pbmenv.use(pbm_version)
         | 
| 12 | 
            -
                    ProconBypassMan.logger.info "#{pbm_version}へアップグレードしました"
         | 
| 13 | 
            -
                    ProconBypassMan::ReportCompletedUpgradePbmJob.perform
         | 
| 14 | 
            -
                    `reboot` # symlinkの参照先が変わるのでrebootする必要がある
         | 
| 15 | 
            -
                  end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                  private
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                  def before_action_callback
         | 
| 20 | 
            -
                    be_processed
         | 
| 21 | 
            -
                  end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                  def after_action_callback
         | 
| 24 | 
            -
                    # no-op
         | 
| 25 | 
            -
                  end
         | 
| 26 | 
            -
                end
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
            end
         | 
    
        data/lib/procon_bypass_man/remote_pbm_action/commands/run_remote_pbm_action_dispatch_command.rb
    DELETED
    
    | @@ -1,21 +0,0 @@ | |
| 1 | 
            -
            class ProconBypassMan::RunRemotePbmActionDispatchCommand
         | 
| 2 | 
            -
              # @param [String] action
         | 
| 3 | 
            -
              # @param [String] uuid
         | 
| 4 | 
            -
              # @return [void]
         | 
| 5 | 
            -
              def self.execute(action: , uuid: , job_args: )
         | 
| 6 | 
            -
                case action
         | 
| 7 | 
            -
                when ProconBypassMan::RemotePbmAction::ACTION_CHANGE_PBM_VERSION
         | 
| 8 | 
            -
                  ProconBypassMan::RemotePbmAction::ChangePbmVersionAction.new(pbm_job_uuid: uuid).run!(job_args: job_args)
         | 
| 9 | 
            -
                when ProconBypassMan::RemotePbmAction::ACTION_STOP_PBM
         | 
| 10 | 
            -
                  ProconBypassMan::RemotePbmAction::StopPbmAction.new(pbm_job_uuid: uuid).run!(job_args: {})
         | 
| 11 | 
            -
                when ProconBypassMan::RemotePbmAction::ACTION_REBOOT_OS
         | 
| 12 | 
            -
                  ProconBypassMan::RemotePbmAction::RebootOsAction.new(pbm_job_uuid: uuid).run!(job_args: {})
         | 
| 13 | 
            -
                when ProconBypassMan::RemotePbmAction::ACTION_RESTORE_SETTING
         | 
| 14 | 
            -
                  ProconBypassMan::RemotePbmAction::RestorePbmSettingAction.new(pbm_job_uuid: uuid).run!(job_args: job_args)
         | 
| 15 | 
            -
                else
         | 
| 16 | 
            -
                  raise "#{action}は対応していないアクションです"
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
              rescue ProconBypassMan::RemotePbmAction::ActionUnexpectedError => e
         | 
| 19 | 
            -
                ProconBypassMan::SendErrorCommand.execute(error: e)
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
            end
         | 
| @@ -1,22 +0,0 @@ | |
| 1 | 
            -
            module ProconBypassMan
         | 
| 2 | 
            -
              module RemotePbmAction
         | 
| 3 | 
            -
                class RebootOsAction < BaseAction
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  def action_content(_args)
         | 
| 6 | 
            -
                    ProconBypassMan.logger.info "execute RebootOsAction!"
         | 
| 7 | 
            -
                    `reboot`
         | 
| 8 | 
            -
                  end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                  private
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                  def before_action_callback
         | 
| 13 | 
            -
                    ProconBypassMan::ReportStartRebootJob.perform
         | 
| 14 | 
            -
                    be_processed
         | 
| 15 | 
            -
                  end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                  def after_action_callback
         | 
| 18 | 
            -
                    # no-op
         | 
| 19 | 
            -
                  end
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
            end
         | 
| @@ -1,41 +0,0 @@ | |
| 1 | 
            -
            module ProconBypassMan
         | 
| 2 | 
            -
              module RemotePbmAction
         | 
| 3 | 
            -
                class RestorePbmSettingAction < BaseAction
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  def action_content(args: )
         | 
| 6 | 
            -
                    require "pbmenv"
         | 
| 7 | 
            -
                    ProconBypassMan.logger.info "execute RestorePbmSettingAction!"
         | 
| 8 | 
            -
                    setting = args.dig("setting") or raise(ProconBypassMan::RemotePbmAction::NeedPbmVersionError, "settingが必要です, #{args.inspect}")
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                    # 復元に失敗したら戻せるように退避する
         | 
| 11 | 
            -
                    FileUtils.copy(
         | 
| 12 | 
            -
                      ProconBypassMan::ButtonsSettingConfiguration.instance.setting_path,
         | 
| 13 | 
            -
                      ProconBypassMan.fallback_setting_path,
         | 
| 14 | 
            -
                    )
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                    ProconBypassMan::YamlWriter.write(
         | 
| 17 | 
            -
                      path: ProconBypassMan::ButtonsSettingConfiguration.instance.setting_path,
         | 
| 18 | 
            -
                      content: setting,
         | 
| 19 | 
            -
                    )
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                    hot_reload!
         | 
| 22 | 
            -
                  end
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                  private
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                  def before_action_callback
         | 
| 27 | 
            -
                    be_in_progress
         | 
| 28 | 
            -
                  end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                  def after_action_callback
         | 
| 31 | 
            -
                    be_processed
         | 
| 32 | 
            -
                  end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                  # @return [void]
         | 
| 35 | 
            -
                  def hot_reload!
         | 
| 36 | 
            -
                    Process.kill(:USR2, ProconBypassMan.pid)
         | 
| 37 | 
            -
                  end
         | 
| 38 | 
            -
                end
         | 
| 39 | 
            -
              end
         | 
| 40 | 
            -
            end
         | 
| 41 | 
            -
             | 
| @@ -1,21 +0,0 @@ | |
| 1 | 
            -
            module ProconBypassMan
         | 
| 2 | 
            -
              module RemotePbmAction
         | 
| 3 | 
            -
                class StopPbmAction < BaseAction
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  def action_content(_args)
         | 
| 6 | 
            -
                    ProconBypassMan.logger.info "execute StopPbmAction!"
         | 
| 7 | 
            -
                    Process.kill("TERM", ProconBypassMan.pid)
         | 
| 8 | 
            -
                  end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                  private
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                  def before_action_callback
         | 
| 13 | 
            -
                    be_processed
         | 
| 14 | 
            -
                  end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  def after_action_callback
         | 
| 17 | 
            -
                    # no-op
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
            end
         | 
| @@ -1,36 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module ProconBypassMan
         | 
| 4 | 
            -
              module RemotePbmAction
         | 
| 5 | 
            -
                require "procon_bypass_man/remote_pbm_action/base_action"
         | 
| 6 | 
            -
                require "procon_bypass_man/remote_pbm_action/change_pbm_version_action"
         | 
| 7 | 
            -
                require "procon_bypass_man/remote_pbm_action/reboot_os_action"
         | 
| 8 | 
            -
                require "procon_bypass_man/remote_pbm_action/stop_pbm_action"
         | 
| 9 | 
            -
                require "procon_bypass_man/remote_pbm_action/restore_pbm_setting.rb"
         | 
| 10 | 
            -
                require "procon_bypass_man/remote_pbm_action/commands/update_remote_pbm_action_status_command"
         | 
| 11 | 
            -
                require "procon_bypass_man/remote_pbm_action/commands/run_remote_pbm_action_dispatch_command"
         | 
| 12 | 
            -
                require "procon_bypass_man/remote_pbm_action/value_objects/remote_pbm_action_object"
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                ACTION_CHANGE_PBM_VERSION = "change_pbm_version"
         | 
| 15 | 
            -
                ACTION_REBOOT_OS = "reboot_os"
         | 
| 16 | 
            -
                ACTION_STOP_PBM = "stop_pbm"
         | 
| 17 | 
            -
                ACTION_RESTORE_SETTING = "restore_pbm_setting"
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                ACTIONS = [
         | 
| 20 | 
            -
                  ACTION_CHANGE_PBM_VERSION,
         | 
| 21 | 
            -
                  ACTION_REBOOT_OS,
         | 
| 22 | 
            -
                  ACTION_STOP_PBM,
         | 
| 23 | 
            -
                  ACTION_RESTORE_SETTING,
         | 
| 24 | 
            -
                ]
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                STATUS_FAILED = :failed
         | 
| 27 | 
            -
                STATUS_IN_PROGRESS = :in_progress
         | 
| 28 | 
            -
                STATUS_PROCESSED = :processed
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                ACTION_STATUSES = [
         | 
| 31 | 
            -
                  STATUS_FAILED,
         | 
| 32 | 
            -
                  STATUS_IN_PROGRESS,
         | 
| 33 | 
            -
                  STATUS_PROCESSED,
         | 
| 34 | 
            -
                ]
         | 
| 35 | 
            -
              end
         | 
| 36 | 
            -
            end
         |