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,5 +1,5 @@
|
|
1
1
|
module ProconBypassMan
|
2
|
-
class
|
2
|
+
class UpdateRemotePbmJobStatusCommand
|
3
3
|
# @param [String] pbm_job_uuid
|
4
4
|
def initialize(pbm_job_uuid: )
|
5
5
|
@pbm_job_uuid = pbm_job_uuid
|
@@ -8,7 +8,7 @@ module ProconBypassMan
|
|
8
8
|
# @param [String] to_status
|
9
9
|
# @return [void]
|
10
10
|
def execute(to_status: )
|
11
|
-
ProconBypassMan::
|
11
|
+
ProconBypassMan::UpdateRemotePbmJobStatusHttpClient.new(
|
12
12
|
path: path,
|
13
13
|
server: ProconBypassMan.config.api_server,
|
14
14
|
).put(to_status: to_status)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module ProconBypassMan
|
2
|
+
module RemoteAction
|
3
|
+
module RemotePbmJob
|
4
|
+
class RebootOsAction < BaseAction
|
5
|
+
|
6
|
+
def action_content(_args)
|
7
|
+
ProconBypassMan.logger.info "execute RebootOsAction!"
|
8
|
+
`reboot`
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def before_action_callback
|
14
|
+
ProconBypassMan::ReportStartRebootJob.perform
|
15
|
+
be_processed
|
16
|
+
end
|
17
|
+
|
18
|
+
def after_action_callback
|
19
|
+
# no-op
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module ProconBypassMan
|
2
|
+
module RemoteAction
|
3
|
+
module RemotePbmJob
|
4
|
+
class ReportProconStatusAction < BaseAction
|
5
|
+
|
6
|
+
def action_content(_args)
|
7
|
+
ProconBypassMan.logger.info "execute ReportProconStatusAction!"
|
8
|
+
ProconBypassMan::SendInfoLogCommand.execute(
|
9
|
+
message: ProconBypassMan::ProconDisplay::Status.instance.current.to_s
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def before_action_callback
|
16
|
+
be_in_progress
|
17
|
+
end
|
18
|
+
|
19
|
+
def after_action_callback
|
20
|
+
be_processed
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module ProconBypassMan
|
2
|
+
module RemoteAction
|
3
|
+
module RemotePbmJob
|
4
|
+
class RestorePbmSettingAction < BaseAction
|
5
|
+
|
6
|
+
def action_content(args: )
|
7
|
+
require "pbmenv"
|
8
|
+
ProconBypassMan.logger.info "execute RestorePbmSettingAction!"
|
9
|
+
setting = args.dig("setting") or raise(ProconBypassMan::RemotePbmJob::NeedPbmVersionError, "settingが必要です, #{args.inspect}")
|
10
|
+
|
11
|
+
# 復元に失敗したら戻せるように退避する
|
12
|
+
FileUtils.copy(
|
13
|
+
ProconBypassMan::ButtonsSettingConfiguration.instance.setting_path,
|
14
|
+
ProconBypassMan.fallback_setting_path,
|
15
|
+
)
|
16
|
+
|
17
|
+
ProconBypassMan::YamlWriter.write(
|
18
|
+
path: ProconBypassMan::ButtonsSettingConfiguration.instance.setting_path,
|
19
|
+
content: setting,
|
20
|
+
)
|
21
|
+
|
22
|
+
hot_reload!
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def before_action_callback
|
28
|
+
be_in_progress
|
29
|
+
end
|
30
|
+
|
31
|
+
def after_action_callback
|
32
|
+
be_processed
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [void]
|
36
|
+
def hot_reload!
|
37
|
+
Process.kill(:USR2, ProconBypassMan.pid)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ProconBypassMan
|
2
|
+
module RemoteAction
|
3
|
+
module RemotePbmJob
|
4
|
+
class StopPbmJob < BaseAction
|
5
|
+
|
6
|
+
def action_content(_args)
|
7
|
+
ProconBypassMan.logger.info "execute StopPbmJob!"
|
8
|
+
Process.kill("TERM", ProconBypassMan.pid)
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def before_action_callback
|
14
|
+
be_processed
|
15
|
+
end
|
16
|
+
|
17
|
+
def after_action_callback
|
18
|
+
# no-op
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module ProconBypassMan
|
2
|
-
class
|
2
|
+
class RemotePbmJobObject
|
3
3
|
# valueobjectがvalidatorの責務も持っている. 今度分離する
|
4
4
|
class ValidationError < StandardError; end
|
5
5
|
class MustBeNotNilError < ValidationError; end
|
@@ -30,7 +30,7 @@ module ProconBypassMan
|
|
30
30
|
self.status or raise MustBeNotNilError, "statusは値が必須です"
|
31
31
|
self.uuid or raise MustBeNotNilError, "uuidは値が必須です"
|
32
32
|
|
33
|
-
unless ProconBypassMan::
|
33
|
+
unless ProconBypassMan::RemoteAction::RemotePbmJob::ACTIONS.include?(action)
|
34
34
|
raise NonSupportAction, "知らないアクションです"
|
35
35
|
end
|
36
36
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ProconBypassMan
|
4
|
+
module RemoteAction
|
5
|
+
module RemotePbmJob
|
6
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/value_objects/remote_pbm_job_object"
|
7
|
+
|
8
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/base_action"
|
9
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/change_pbm_version_action"
|
10
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/reboot_os_action"
|
11
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/stop_pbm_action"
|
12
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/restore_pbm_setting"
|
13
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/report_procon_status"
|
14
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/commands/update_remote_pbm_job_status_command"
|
15
|
+
require "procon_bypass_man/remote_action/remote_pbm_job/commands/run_remote_pbm_job_dispatch_command"
|
16
|
+
|
17
|
+
ACTION_CHANGE_PBM_VERSION = "change_pbm_version"
|
18
|
+
ACTION_REBOOT_OS = "reboot_os"
|
19
|
+
ACTION_STOP_PBM = "stop_pbm"
|
20
|
+
ACTION_RESTORE_SETTING = "restore_pbm_setting"
|
21
|
+
ACTION_REPORT_PORCON_STATUS = 'report_porcon_status'
|
22
|
+
|
23
|
+
ACTIONS_IN_MASTER_PROCESS = [
|
24
|
+
ACTION_CHANGE_PBM_VERSION,
|
25
|
+
ACTION_REBOOT_OS,
|
26
|
+
ACTION_STOP_PBM,
|
27
|
+
ACTION_RESTORE_SETTING,
|
28
|
+
]
|
29
|
+
ACTIONS_IN_BYPASS_PROCESS = [
|
30
|
+
ACTION_REPORT_PORCON_STATUS,
|
31
|
+
]
|
32
|
+
ACTIONS = ACTIONS_IN_MASTER_PROCESS + ACTIONS_IN_BYPASS_PROCESS
|
33
|
+
|
34
|
+
STATUS_FAILED = :failed
|
35
|
+
STATUS_IN_PROGRESS = :in_progress
|
36
|
+
STATUS_PROCESSED = :processed
|
37
|
+
|
38
|
+
ACTION_STATUSES = [
|
39
|
+
STATUS_FAILED,
|
40
|
+
STATUS_IN_PROGRESS,
|
41
|
+
STATUS_PROCESSED,
|
42
|
+
]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# NOTE: remote macroとpbm remote actionの両方で使う
|
2
|
+
class ProconBypassMan::RemoteAction::Task < ::Struct.new(:name, :uuid, :steps, :type)
|
3
|
+
TYPE_MACRO = 'macro'
|
4
|
+
TYPE_ACTION = 'action'
|
5
|
+
|
6
|
+
# remote actionのためのalias
|
7
|
+
def action
|
8
|
+
name
|
9
|
+
end
|
10
|
+
|
11
|
+
def job_args
|
12
|
+
steps
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ProconBypassMan
|
4
|
+
module RemoteAction
|
5
|
+
# NOTE: RemoteActionは「具体的な処理を行うジョブ」と「マクロ」を内包する
|
6
|
+
require "procon_bypass_man/remote_action/remote_pbm_job"
|
7
|
+
|
8
|
+
require "procon_bypass_man/remote_action/remote_action_object"
|
9
|
+
require "procon_bypass_man/remote_action/remote_action_receiver"
|
10
|
+
require "procon_bypass_man/remote_action/remote_action_sender"
|
11
|
+
require "procon_bypass_man/remote_action/queue_over_process"
|
12
|
+
require "procon_bypass_man/remote_action/task"
|
13
|
+
require "procon_bypass_man/remote_action/task_queue"
|
14
|
+
|
15
|
+
ACTION_MACRO = "remote_macro"
|
16
|
+
|
17
|
+
TaskQueueInProcess = ProconBypassMan::RemoteAction::TaskQueue.new
|
18
|
+
end
|
19
|
+
end
|
@@ -59,59 +59,75 @@ module ProconBypassMan
|
|
59
59
|
|
60
60
|
# @param [Hash] data
|
61
61
|
def self.dispatch(data: , client: )
|
62
|
-
|
63
|
-
case pbm_job_hash['action']
|
62
|
+
case data.dig("message")['action']
|
64
63
|
when "ping"
|
65
64
|
client.perform('pong', { device_id: ProconBypassMan.device_id, message: 'hello from pbm' })
|
66
|
-
when ProconBypassMan::
|
67
|
-
|
68
|
-
when *ProconBypassMan::
|
69
|
-
|
65
|
+
when ProconBypassMan::RemoteAction::ACTION_MACRO
|
66
|
+
run_remote_macro(data: data)
|
67
|
+
when *ProconBypassMan::RemoteAction::RemotePbmJob::ACTIONS_IN_MASTER_PROCESS
|
68
|
+
run_remote_pbm_job(data: data, process_to_execute: :master)
|
69
|
+
when *ProconBypassMan::RemoteAction::RemotePbmJob::ACTIONS_IN_BYPASS_PROCESS
|
70
|
+
run_remote_pbm_job(data: data, process_to_execute: :bypass)
|
70
71
|
else
|
71
|
-
ProconBypassMan.
|
72
|
+
ProconBypassMan::SendErrorCommand.execute(error: 'unknown remote pbm action')
|
72
73
|
end
|
73
74
|
end
|
74
75
|
|
75
|
-
# @raise [ProconBypassMan::
|
76
|
+
# @raise [ProconBypassMan::RemotePbmJobObject::ValidationError]
|
76
77
|
# @param [Hash] data
|
78
|
+
# @param [Symbol] process_to_execute どのプロセスで実行するか
|
77
79
|
# @return [Void]
|
78
|
-
def self.
|
80
|
+
def self.run_remote_pbm_job(data: , process_to_execute: )
|
79
81
|
pbm_job_hash = data.dig("message")
|
80
82
|
begin
|
81
|
-
pbm_job_object = ProconBypassMan::
|
83
|
+
pbm_job_object = ProconBypassMan::RemotePbmJobObject.new(action: pbm_job_hash["action"],
|
82
84
|
status: pbm_job_hash["status"],
|
83
85
|
uuid: pbm_job_hash["uuid"],
|
84
86
|
created_at: pbm_job_hash["created_at"],
|
85
87
|
job_args: pbm_job_hash["args"])
|
86
88
|
pbm_job_object.validate!
|
87
|
-
rescue ProconBypassMan::
|
89
|
+
rescue ProconBypassMan::RemotePbmJobObject::ValidationError => e
|
88
90
|
ProconBypassMan::SendErrorCommand.execute(error: e)
|
89
91
|
return
|
90
92
|
end
|
91
93
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
94
|
+
case process_to_execute
|
95
|
+
when :master
|
96
|
+
ProconBypassMan::RemoteAction::RemotePbmJob::RunRemotePbmJobDispatchCommand.execute(
|
97
|
+
action: pbm_job_object.action,
|
98
|
+
uuid: pbm_job_object.uuid,
|
99
|
+
job_args: pbm_job_object.job_args
|
100
|
+
)
|
101
|
+
when :bypass
|
102
|
+
ProconBypassMan::RemoteAction::QueueOverProcess.push(
|
103
|
+
ProconBypassMan::RemoteAction::Task.new(pbm_job_object.action,
|
104
|
+
pbm_job_object.uuid,
|
105
|
+
pbm_job_object.job_args,
|
106
|
+
ProconBypassMan::RemoteAction::Task::TYPE_ACTION)
|
107
|
+
)
|
108
|
+
else
|
109
|
+
ProconBypassMan::SendErrorCommand.execute(error: 'unknown process to execute')
|
110
|
+
end
|
97
111
|
end
|
98
112
|
|
99
|
-
def self.
|
113
|
+
def self.run_remote_macro(data: )
|
100
114
|
pbm_job_hash = data.dig("message")
|
101
115
|
begin
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
rescue ProconBypassMan::
|
116
|
+
remote_action_object = ProconBypassMan::RemoteAction::RemoteActionObject.new(name: pbm_job_hash["name"],
|
117
|
+
uuid: pbm_job_hash["uuid"],
|
118
|
+
steps: pbm_job_hash["steps"])
|
119
|
+
remote_action_object.validate!
|
120
|
+
rescue ProconBypassMan::RemoteAction::RemoteActionObject::ValidationError => e
|
107
121
|
ProconBypassMan::SendErrorCommand.execute(error: e)
|
108
122
|
return
|
109
123
|
end
|
110
124
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
125
|
+
# TODO: インラインしたい
|
126
|
+
ProconBypassMan::RemoteActionSender.execute(
|
127
|
+
name: remote_action_object.name,
|
128
|
+
uuid: remote_action_object.uuid,
|
129
|
+
steps: remote_action_object.steps,
|
130
|
+
type: ProconBypassMan::RemoteAction::Task::TYPE_MACRO,
|
115
131
|
)
|
116
132
|
end
|
117
133
|
end
|
data/lib/procon_bypass_man.rb
CHANGED
@@ -31,7 +31,7 @@ require_relative "procon_bypass_man/support/on_memory_cache"
|
|
31
31
|
require_relative "procon_bypass_man/support/http_client"
|
32
32
|
require_relative "procon_bypass_man/support/report_http_client"
|
33
33
|
require_relative "procon_bypass_man/support/remote_macro_http_client"
|
34
|
-
require_relative "procon_bypass_man/support/
|
34
|
+
require_relative "procon_bypass_man/support/update_remote_pbm_job_status_http_client"
|
35
35
|
require_relative "procon_bypass_man/support/send_device_stats_http_client"
|
36
36
|
require_relative "procon_bypass_man/support/procon_performance_http_client"
|
37
37
|
require_relative "procon_bypass_man/support/analog_stick_hypotenuse_tilting_power_scaler"
|
@@ -55,7 +55,6 @@ require_relative "procon_bypass_man/device_model"
|
|
55
55
|
require_relative "procon_bypass_man/procon/button"
|
56
56
|
require_relative "procon_bypass_man/procon/analog_stick_cap"
|
57
57
|
require_relative "procon_bypass_man/procon/analog_stick_manipulator"
|
58
|
-
require_relative "procon_bypass_man/remote_pbm_action/value_objects/remote_pbm_action_object"
|
59
58
|
require_relative "procon_bypass_man/scheduler"
|
60
59
|
require_relative "procon_bypass_man/plugins"
|
61
60
|
require_relative "procon_bypass_man/worker"
|
@@ -63,8 +62,7 @@ require_relative "procon_bypass_man/websocket/client"
|
|
63
62
|
require_relative "procon_bypass_man/websocket/watchdog"
|
64
63
|
require_relative "procon_bypass_man/websocket/forever"
|
65
64
|
|
66
|
-
require_relative "procon_bypass_man/
|
67
|
-
require_relative "procon_bypass_man/remote_macro"
|
65
|
+
require_relative "procon_bypass_man/remote_action"
|
68
66
|
|
69
67
|
STDOUT.sync = true
|
70
68
|
Thread.abort_on_exception = true
|
@@ -161,7 +159,7 @@ module ProconBypassMan
|
|
161
159
|
ProconBypassMan::Background::JobQueue.start!
|
162
160
|
ProconBypassMan::Websocket::Client.start!
|
163
161
|
# TODO ProconBypassMan::DrbObjects.start_all! みたいな感じで書きたい
|
164
|
-
ProconBypassMan::
|
162
|
+
ProconBypassMan::RemoteAction::QueueOverProcess.start!
|
165
163
|
ProconBypassMan::Procon::PerformanceMeasurement::QueueOverProcess.start!
|
166
164
|
ProconBypassMan::Scheduler.start!
|
167
165
|
|
@@ -193,7 +191,7 @@ module ProconBypassMan
|
|
193
191
|
BlueGreenProcess.configure do |config|
|
194
192
|
config.after_fork = -> {
|
195
193
|
DRb.start_service if defined?(DRb)
|
196
|
-
ProconBypassMan::
|
194
|
+
ProconBypassMan::RemoteActionReceiver.start!
|
197
195
|
BlueGreenProcess.config.logger = ProconBypassMan.logger
|
198
196
|
}
|
199
197
|
config.shared_variables = [:buttons, :current_layer_key, :recent_left_stick_hypotenuses]
|
@@ -204,7 +202,7 @@ module ProconBypassMan
|
|
204
202
|
def self.terminate_pbm
|
205
203
|
FileUtils.rm_rf(ProconBypassMan.pid_path)
|
206
204
|
FileUtils.rm_rf(ProconBypassMan.digest_path)
|
207
|
-
ProconBypassMan::
|
205
|
+
ProconBypassMan::RemoteAction::QueueOverProcess.shutdown
|
208
206
|
ProconBypassMan::Procon::PerformanceMeasurement::QueueOverProcess.shutdown
|
209
207
|
self.worker&.shutdown
|
210
208
|
end
|
data/procon_bypass_man.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
30
|
# Uncomment to register a new dependency of your gem
|
31
|
-
spec.add_dependency "pbmenv", ">= 0.1.
|
31
|
+
spec.add_dependency "pbmenv", ">= 0.1.11" # enable_pbm_cloud連携機能でPbmenv.install, .cleanを使っている.
|
32
32
|
spec.add_dependency "action_cable_client"
|
33
33
|
spec.add_dependency "sorted_set"
|
34
34
|
spec.add_dependency "blue_green_process", '0.1.4.2'
|
data/project_template/app.rb
CHANGED
@@ -12,7 +12,7 @@ begin
|
|
12
12
|
gemfile do
|
13
13
|
source 'https://rubygems.org'
|
14
14
|
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
15
|
-
gem 'procon_bypass_man', '0.3.
|
15
|
+
gem 'procon_bypass_man', '0.3.6'
|
16
16
|
end
|
17
17
|
rescue Bundler::Source::Git::GitCommandError => e
|
18
18
|
retry_count_on_git_command_error = retry_count_on_git_command_error + 1
|
data/project_template/app.rb.erb
CHANGED
@@ -12,7 +12,7 @@ begin
|
|
12
12
|
gemfile do
|
13
13
|
source 'https://rubygems.org'
|
14
14
|
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
15
|
-
gem 'procon_bypass_man', '0.3.
|
15
|
+
gem 'procon_bypass_man', '0.3.6'
|
16
16
|
end
|
17
17
|
rescue Bundler::Source::Git::GitCommandError => e
|
18
18
|
retry_count_on_git_command_error = retry_count_on_git_command_error + 1
|
data/sig/main.rbs
CHANGED
@@ -613,12 +613,6 @@ module ProconBypassMan
|
|
613
613
|
end
|
614
614
|
end
|
615
615
|
|
616
|
-
module ProconBypassMan
|
617
|
-
class UpdateRemotePbmActionStatusHttpClient
|
618
|
-
def post: (to_status: ::Symbol) -> untyped
|
619
|
-
end
|
620
|
-
end
|
621
|
-
|
622
616
|
module ProconBypassMan
|
623
617
|
class CompressArray
|
624
618
|
@array: [String]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: procon_bypass_man
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jiikko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pbmenv
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1.
|
19
|
+
version: 0.1.11
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.1.
|
26
|
+
version: 0.1.11
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: action_cable_client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- bin/console
|
94
94
|
- bin/dev_api_server.rb
|
95
95
|
- bin/generate_default_app
|
96
|
+
- bin/generate_output_report
|
96
97
|
- bin/setup
|
97
98
|
- docs/getting_started.md
|
98
99
|
- docs/how_to_connect_procon.md
|
@@ -106,7 +107,7 @@ files:
|
|
106
107
|
- docs/setting/splatoon3_macro_dasei_cancel.md
|
107
108
|
- docs/setting/splatoon3_macro_forward_ikarole.md
|
108
109
|
- docs/setting/splatoon3_recommended_setting.md
|
109
|
-
- docs/setting/
|
110
|
+
- docs/setting/splatoon3_rotation_left_stick.md
|
110
111
|
- docs/setup_raspi.md
|
111
112
|
- docs/setup_raspi.mitamae.rb
|
112
113
|
- docs/setup_raspi_by_mitamae.md
|
@@ -119,20 +120,24 @@ files:
|
|
119
120
|
- lib/procon_bypass_man/background/jobs/base_job.rb
|
120
121
|
- lib/procon_bypass_man/background/jobs/concerns/has_external_api_setting.rb
|
121
122
|
- lib/procon_bypass_man/background/jobs/concerns/job_performable.rb
|
123
|
+
- lib/procon_bypass_man/background/jobs/post_completed_remote_action_job.rb
|
122
124
|
- lib/procon_bypass_man/background/jobs/post_completed_remote_macro_job.rb
|
123
125
|
- lib/procon_bypass_man/background/jobs/report_boot_job.rb
|
124
126
|
- lib/procon_bypass_man/background/jobs/report_completed_upgrade_pbm_job.rb
|
125
127
|
- lib/procon_bypass_man/background/jobs/report_error_job.rb
|
126
128
|
- lib/procon_bypass_man/background/jobs/report_error_reload_config_job.rb
|
127
129
|
- lib/procon_bypass_man/background/jobs/report_event_base_job.rb
|
130
|
+
- lib/procon_bypass_man/background/jobs/report_info_log_job.rb
|
128
131
|
- lib/procon_bypass_man/background/jobs/report_load_config_job.rb
|
129
132
|
- lib/procon_bypass_man/background/jobs/report_procon_performance_measurements_job.rb
|
130
133
|
- lib/procon_bypass_man/background/jobs/report_reload_config_job.rb
|
131
134
|
- lib/procon_bypass_man/background/jobs/report_start_reboot_job.rb
|
135
|
+
- lib/procon_bypass_man/background/jobs/report_warning_job.rb
|
132
136
|
- lib/procon_bypass_man/background/jobs/sync_device_stats_job.rb
|
133
137
|
- lib/procon_bypass_man/buttons_setting_configuration.rb
|
134
138
|
- lib/procon_bypass_man/buttons_setting_configuration/layer.rb
|
135
139
|
- lib/procon_bypass_man/buttons_setting_configuration/loader.rb
|
140
|
+
- lib/procon_bypass_man/buttons_setting_configuration/metadata_loader.rb
|
136
141
|
- lib/procon_bypass_man/buttons_setting_configuration/param_normalizer.rb
|
137
142
|
- lib/procon_bypass_man/buttons_setting_configuration/param_normalizer/button.rb
|
138
143
|
- lib/procon_bypass_man/buttons_setting_configuration/param_normalizer/button_list.rb
|
@@ -152,7 +157,9 @@ files:
|
|
152
157
|
- lib/procon_bypass_man/commands/print_boot_message_command.rb
|
153
158
|
- lib/procon_bypass_man/commands/print_message_command.rb
|
154
159
|
- lib/procon_bypass_man/commands/send_error_command.rb
|
160
|
+
- lib/procon_bypass_man/commands/send_info_log_command.rb
|
155
161
|
- lib/procon_bypass_man/commands/send_reload_config_event_command.rb
|
162
|
+
- lib/procon_bypass_man/commands/send_warning_command.rb
|
156
163
|
- lib/procon_bypass_man/commands/write_device_id_command.rb
|
157
164
|
- lib/procon_bypass_man/commands/write_session_id_command.rb
|
158
165
|
- lib/procon_bypass_man/configuration.rb
|
@@ -229,28 +236,28 @@ files:
|
|
229
236
|
- lib/procon_bypass_man/procon/value_objects/procon_reader.rb
|
230
237
|
- lib/procon_bypass_man/procon/value_objects/rumble_binary.rb
|
231
238
|
- lib/procon_bypass_man/procon_display.rb
|
232
|
-
- lib/procon_bypass_man/procon_display/bypass_hook.rb
|
233
239
|
- lib/procon_bypass_man/procon_display/http_request.rb
|
234
240
|
- lib/procon_bypass_man/procon_display/http_response.rb
|
235
241
|
- lib/procon_bypass_man/procon_display/server.rb
|
236
242
|
- lib/procon_bypass_man/procon_display/server_app.rb
|
237
243
|
- lib/procon_bypass_man/procon_display/status.rb
|
238
|
-
- lib/procon_bypass_man/
|
239
|
-
- lib/procon_bypass_man/
|
240
|
-
- lib/procon_bypass_man/
|
241
|
-
- lib/procon_bypass_man/
|
242
|
-
- lib/procon_bypass_man/
|
243
|
-
- lib/procon_bypass_man/
|
244
|
-
- lib/procon_bypass_man/
|
245
|
-
- lib/procon_bypass_man/
|
246
|
-
- lib/procon_bypass_man/
|
247
|
-
- lib/procon_bypass_man/
|
248
|
-
- lib/procon_bypass_man/
|
249
|
-
- lib/procon_bypass_man/
|
250
|
-
- lib/procon_bypass_man/
|
251
|
-
- lib/procon_bypass_man/
|
252
|
-
- lib/procon_bypass_man/
|
253
|
-
- lib/procon_bypass_man/
|
244
|
+
- lib/procon_bypass_man/remote_action.rb
|
245
|
+
- lib/procon_bypass_man/remote_action/queue_over_process.rb
|
246
|
+
- lib/procon_bypass_man/remote_action/remote_action_object.rb
|
247
|
+
- lib/procon_bypass_man/remote_action/remote_action_receiver.rb
|
248
|
+
- lib/procon_bypass_man/remote_action/remote_action_sender.rb
|
249
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job.rb
|
250
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/base_action.rb
|
251
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/change_pbm_version_action.rb
|
252
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/commands/run_remote_pbm_job_dispatch_command.rb
|
253
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/commands/update_remote_pbm_job_status_command.rb
|
254
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/reboot_os_action.rb
|
255
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/report_procon_status.rb
|
256
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/restore_pbm_setting.rb
|
257
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/stop_pbm_action.rb
|
258
|
+
- lib/procon_bypass_man/remote_action/remote_pbm_job/value_objects/remote_pbm_job_object.rb
|
259
|
+
- lib/procon_bypass_man/remote_action/task.rb
|
260
|
+
- lib/procon_bypass_man/remote_action/task_queue.rb
|
254
261
|
- lib/procon_bypass_man/runner.rb
|
255
262
|
- lib/procon_bypass_man/scheduler.rb
|
256
263
|
- lib/procon_bypass_man/support/analog_stick_hypotenuse_tilting_power_scaler.rb
|
@@ -271,7 +278,7 @@ files:
|
|
271
278
|
- lib/procon_bypass_man/support/retryable.rb
|
272
279
|
- lib/procon_bypass_man/support/safe_timeout.rb
|
273
280
|
- lib/procon_bypass_man/support/send_device_stats_http_client.rb
|
274
|
-
- lib/procon_bypass_man/support/
|
281
|
+
- lib/procon_bypass_man/support/update_remote_pbm_job_status_http_client.rb
|
275
282
|
- lib/procon_bypass_man/support/uptime.rb
|
276
283
|
- lib/procon_bypass_man/support/usb_device_controller.rb
|
277
284
|
- lib/procon_bypass_man/support/yaml_loader.rb
|
@@ -1,12 +0,0 @@
|
|
1
|
-
module ProconBypassMan::ProconDisplay::BypassHook
|
2
|
-
include ProconBypassMan::Callbacks
|
3
|
-
|
4
|
-
define_callbacks :run
|
5
|
-
|
6
|
-
set_callback :run, :after, :write_procon_display_status
|
7
|
-
|
8
|
-
def write_procon_display_status
|
9
|
-
return unless bypass_value.binary
|
10
|
-
ProconBypassMan::ProconDisplay::Status.instance.current = bypass_value.binary.to_procon_reader.to_hash.dup
|
11
|
-
end
|
12
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
class ProconBypassMan::RemoteMacroSender
|
2
|
-
def self.execute(name: , uuid: , steps: )
|
3
|
-
ProconBypassMan.logger.info "[remote macro][sender] name: #{name}, uuid: #{uuid}, steps: #{steps}"
|
4
|
-
ProconBypassMan::RemoteMacro::QueueOverProcess.push(
|
5
|
-
ProconBypassMan::RemoteMacro::Task.new(name, uuid, steps)
|
6
|
-
)
|
7
|
-
end
|
8
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ProconBypassMan
|
4
|
-
module RemoteMacro
|
5
|
-
require "procon_bypass_man/remote_macro/remote_macro_object"
|
6
|
-
require "procon_bypass_man/remote_macro/remote_macro_receiver"
|
7
|
-
require "procon_bypass_man/remote_macro/remote_macro_sender"
|
8
|
-
require "procon_bypass_man/remote_macro/queue_over_process"
|
9
|
-
require "procon_bypass_man/remote_macro/task"
|
10
|
-
require "procon_bypass_man/remote_macro/task_queue"
|
11
|
-
|
12
|
-
ACTION_KEY = "remote_macro"
|
13
|
-
|
14
|
-
TaskQueueInProcess = ProconBypassMan::RemoteMacro::TaskQueue.new
|
15
|
-
end
|
16
|
-
end
|