Skip to content

Commit cf3aa23

Browse files
committed
Update deps. Fix Launch/Stop udpdates
1 parent ccdde31 commit cf3aa23

File tree

3 files changed

+42
-28
lines changed

3 files changed

+42
-28
lines changed

lib/heroix.ex

-10
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,6 @@ defmodule Heroix do
77
if it comes from the database, an external API or others.
88
"""
99

10-
def logger(tag) do
11-
quote do
12-
require Logger
13-
14-
def log(to_log) do
15-
Logger.info("[#{unquote(tag)}] #{inspect(to_log)}")
16-
end
17-
end
18-
end
19-
2010
def get_json(filename) do
2111
with {:ok, body} <- File.read(filename),
2212
{:ok, json} <- Jason.decode(body) do

lib/heroix/game_runner.ex

+39-15
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,18 @@ defmodule Heroix.GameRunner do
3939
{:noreply, state}
4040
end
4141

42-
def handle_cast(:stop, state = %{game_pid: game_pid, app_name: app_name}) do
43-
log("Stopping #{app_name} (OS pid: #{game_pid})")
42+
def handle_cast(:stop, state) do
43+
%{game_pid: game_pid, legendary_pid: legendary_pid, app_name: app_name} = state
4444

45-
@binary.kill(game_pid)
45+
if legendary_pid do
46+
log("Stopping legendary before game launched")
47+
48+
@binary.kill(legendary_pid)
49+
else
50+
log("Stopping #{app_name} (OS pid: #{game_pid})")
51+
52+
@binary.kill(game_pid)
53+
end
4654

4755
{:noreply, state}
4856
end
@@ -60,21 +68,37 @@ defmodule Heroix.GameRunner do
6068
end
6169

6270
# search for the game's OS PID after legendary process ends
63-
def handle_info(msg = {:DOWN, _os_pid, :process, pid, :normal}, state) do
64-
%{app_name: app_name, legendary_pid: legendary_pid} = state
71+
def handle_info(msg = {:DOWN, os_pid, :process, pid, :normal}, state) do
72+
%{app_name: app_name, legendary_pid: legendary_pid, game_pid: game_pid} = state
6573

66-
if pid == legendary_pid do
67-
log("Legendary launched the game")
68-
game_pid = find_game_pid(app_name)
69-
log("In process: #{game_pid}")
74+
cond do
75+
pid == legendary_pid ->
76+
case find_game_pid(app_name) do
77+
1 ->
78+
log("Legendary stopped before launching the game")
7079

71-
# monitor OS process
72-
:exec.manage(game_pid, [:stderr, :stdout, :monitor])
80+
HeroixWeb.Endpoint.broadcast(@topic, "stopped", %{app_name: app_name})
7381

74-
{:noreply, Map.put(state, :game_pid, game_pid)}
75-
else
76-
log("Unknown process DOWN #{msg}")
77-
{:noreply, state}
82+
{:noreply, Map.put(state, :legendary_pid, nil)}
83+
84+
game_pid ->
85+
log("Legendary launched the game in process: #{game_pid}")
86+
87+
# monitor OS process
88+
:exec.manage(game_pid, [:stderr, :stdout, :monitor])
89+
90+
{:noreply, Map.merge(state, %{game_pid: game_pid, legendary_pid: nil})}
91+
end
92+
93+
os_pid == game_pid ->
94+
log("Game stopped")
95+
HeroixWeb.Endpoint.broadcast(@topic, "stopped", %{app_name: app_name})
96+
97+
{:noreply, Map.put(state, :game_pid, nil)}
98+
99+
true ->
100+
log("Unknown process DOWN #{inspect(msg)}")
101+
{:noreply, state}
78102
end
79103
end
80104

mix.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"cowlib": {:hex, :cowlib, "2.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"},
77
"elixir_make": {:hex, :elixir_make, "0.6.3", "bc07d53221216838d79e03a8019d0839786703129599e9619f4ab74c8c096eac", [:mix], [], "hexpm", "f5cbd651c5678bcaabdbb7857658ee106b12509cd976c2c2fca99688e1daf716"},
88
"erlexec": {:hex, :erlexec, "1.20.1", "27a9f39f2c27840b8306c94635190aae4d172c9b7359fa9495789f28e1d5ae89", [:rebar3], [], "hexpm", "79dbeed6ec980dd105cd502c818cf414c6d7cb10a90b5ad2734fd09977fe6dc9"},
9-
"esbuild": {:hex, :esbuild, "0.4.0", "9f17db148aead4cf1e6e6a584214357287a93407b5fb51a031f122b61385d4c2", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "b61e4e6b92ffe45e4ee4755a22de6211a67c67987dc02afb35a425a0add1d447"},
9+
"esbuild": {:hex, :esbuild, "0.5.0", "d5bb08ff049d7880ee3609ed5c4b864bd2f46445ea40b16b4acead724fb4c4a3", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "f183a0b332d963c4cfaf585477695ea59eef9a6f2204fdd0efa00e099694ffe5"},
1010
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
1111
"floki": {:hex, :floki, "0.32.1", "dfe3b8db3b793939c264e6f785bca01753d17318d144bd44b407fb3493acaa87", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "d4b91c713e4a784a3f7b1e3cc016eefc619f6b1c3898464222867cafd3c681a3"},
1212
"gettext": {:hex, :gettext, "0.19.1", "564953fd21f29358e68b91634799d9d26989f8d039d7512622efb3c3b1c97892", [:mix], [], "hexpm", "10c656c0912b8299adba9b061c06947511e3f109ab0d18b44a866a4498e77222"},
@@ -19,11 +19,11 @@
1919
"mime": {:hex, :mime, "2.0.2", "0b9e1a4c840eafb68d820b0e2158ef5c49385d17fb36855ac6e7e087d4b1dcc5", [:mix], [], "hexpm", "e6a3f76b4c277739e36c2e21a2c640778ba4c3846189d5ab19f97f126df5f9b7"},
2020
"mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"},
2121
"parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"},
22-
"phoenix": {:hex, :phoenix, "1.6.9", "648e660040cdc758c5401972e0f592ce622d4ce9cd16d2d9c33dda32d0c9f7fa", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "be2fe497597d6bf297dcbf9f4416b4929dbfbdcc25edc1acf6d4dcaecbe898a6"},
22+
"phoenix": {:hex, :phoenix, "1.6.10", "7a9e8348c5c62e7fd2f74a1884b88d98251f87186a430048bfbdbab3e3f46736", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "08cf70d42f61dd0ea381805bac3cddef57b7b92ade5acc6f6036aa25ecaca9a2"},
2323
"phoenix_html": {:hex, :phoenix_html, "3.2.0", "1c1219d4b6cb22ac72f12f73dc5fad6c7563104d083f711c3fcd8551a1f4ae11", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "36ec97ba56d25c0136ef1992c37957e4246b649d620958a1f9fa86165f8bc54f"},
2424
"phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.6.5", "1495bb014be12c9a9252eca04b9af54246f6b5c1e4cd1f30210cd00ec540cf8e", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.3", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.17.7", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "ef4fa50dd78364409039c99cf6f98ab5209b4c5f8796c17f4db118324f0db852"},
2525
"phoenix_live_reload": {:hex, :phoenix_live_reload, "1.3.3", "3a53772a6118d5679bf50fc1670505a290e32a1d195df9e069d8c53ab040c054", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "766796676e5f558dbae5d1bdb066849673e956005e3730dfd5affd7a6da4abac"},
26-
"phoenix_live_view": {:hex, :phoenix_live_view, "0.17.9", "36b5aa812bc3ccd64c9630f6b3234d9ea21105493237e927aae19d0ba758f0db", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f7ebc3e0ba0c5f6b6996ed6c901ddbfdaba59a6d09b569e7cb2f2f7d693b4455"},
26+
"phoenix_live_view": {:hex, :phoenix_live_view, "0.17.10", "a8b61b1a825dc1f9c0808583c2a7e8d18dfbe22edb6d7271744a2013eca8adb1", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3e77cf0fc9909e9e87fa48f82fa3c4e6f471b19edf481b1b1b31e7d47810f235"},
2727
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.1", "ba04e489ef03763bf28a17eb2eaddc2c20c6d217e2150a61e3298b0f4c2012b5", [:mix], [], "hexpm", "81367c6d1eea5878ad726be80808eb5a787a23dee699f96e72b1109c57cdd8d9"},
2828
"phoenix_sass": {:hex, :phoenix_sass, "0.1.8", "ed61d5d7acc287f18c533cbc01e32e3743591c02e278e2c08338e2c68e5bbc44", [:mix], [{:sass_compiler, "~> 0.1", [hex: :sass_compiler, repo: "hexpm", optional: false]}], "hexpm", "b41d1df7b39f55c04d8f3e035dea1638c2c964750425e54028e216f9e581e328"},
2929
"phoenix_view": {:hex, :phoenix_view, "1.1.2", "1b82764a065fb41051637872c7bd07ed2fdb6f5c3bd89684d4dca6e10115c95a", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "7ae90ad27b09091266f6adbb61e1d2516a7c3d7062c6789d46a7554ec40f3a56"},

0 commit comments

Comments
 (0)