#!/usr/bin/julia project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig") cd(project_path) do @info "now at " pwd() run(`julia --project=. -e 'using Pkg; Pkg.update()'`) compile_traces = Iterators.filter(eachline("tracecompile.jl")) do line # Remove anonymous functions from compile trace !startswith(line, '#') && !occursin(r"\#\d+\#\d+", line) && !occursin(r"\#\#printstyled\#", line) end |> join read("precompile_exec_head.jl", String) * compile_traces |> (b -> write("precompile_exec.jl", b)) @info "compiling sysimage..." run(`julia --project=. -e 'using PackageCompiler; create_sysimage(["LanguageServer"], sysimage_path = "sys-ls.so", precompile_execution_file = ["precompile_exec.jl"])'`) @info "post precompile" run(`julia --project=. -J sys-ls.so -e 'using Pkg; Pkg.precompile()'`) end