mirror of
				https://github.com/livebook-dev/livebook.git
				synced 2025-11-01 00:06:04 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			753 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			753 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| if Mix.target() == :app do
 | |
|   defmodule LivebookApp do
 | |
|     use GenServer
 | |
| 
 | |
|     def start_link(arg) do
 | |
|       GenServer.start_link(__MODULE__, arg, name: __MODULE__)
 | |
|     end
 | |
| 
 | |
|     @impl true
 | |
|     def init(_) do
 | |
|       {:ok, pid} = ElixirKit.start()
 | |
|       ref = Process.monitor(pid)
 | |
| 
 | |
|       ElixirKit.publish("url", LivebookWeb.Endpoint.access_url())
 | |
| 
 | |
|       {:ok, %{ref: ref}}
 | |
|     end
 | |
| 
 | |
|     @impl true
 | |
|     def handle_info({:event, "open", url}, state) do
 | |
|       url
 | |
|       |> Livebook.Utils.expand_desktop_url()
 | |
|       |> Livebook.Utils.browser_open()
 | |
| 
 | |
|       {:noreply, state}
 | |
|     end
 | |
| 
 | |
|     @impl true
 | |
|     def handle_info({:DOWN, ref, :process, _, :shutdown}, state) when ref == state.ref do
 | |
|       Livebook.Config.shutdown()
 | |
|       {:noreply, state}
 | |
|     end
 | |
|   end
 | |
| end
 |