Packages
livebook
0.19.0
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/compile.ensure_livebook_priv.ex
defmodule Mix.Tasks.Compile.EnsureLivebookPriv do
@moduledoc false
use Mix.Task
@impl true
def run(_args) do
# Use an absolute path, instead of relying on the current mix
# project, so the task can be invoked by nerves_livebook.
project_dir = Path.expand("../../..", __DIR__)
priv_static_dir = Path.join(project_dir, "priv/static")
# In case Livebook is used as a library as in nerves_livebook,
# the assets.setup is not called, so we use this custom compiler
# to invoke the task and make the assets work transparently.
#
# This is also used when installing escript from GitHub.
if Mix.env() == :prod and not File.exists?(priv_static_dir) do
Mix.shell().info("Generating priv/static")
Mix.Task.run("bun.install", ~w"--if-missing")
Mix.Task.run("bun", ~w"assets install")
Mix.Task.run("bun", ~w" assets run build")
end
:ok
end
end