Setup.jl/src/Setup.jl

92 lines
2.1 KiB
Julia

module Setup
import REPL
export about, @about
@static if VERSION >= v"1.8"
TERM::Ref{String} = get(ENV, "TERM", "")
IS_SSH::Ref{Bool} = Ref(false)
else
TERM = get(ENV, "TERM", "")
IS_SSH = Ref(false)
end
include("install.jl")
include("cmdpuns.jl")
include("termsetup.jl")
include("about.jl")
include("autoloads.jl")
using .Autoloads
include("autoload_data.jl")
include("sessions.jl")
using .Sessions
@static if VERSION <= v"1.10"
const Pkg = let pkg_id = Base.PkgId(Base.UUID("44cfe95a-1eb2-52ea-b672-e2afdf69b78f"), "Pkg")
@something(get(Base.loaded_modules, pkg_id, nothing),
Base.require(pkg_id))
end
lazypkg() = Pkg
include("../ext/PkgExt.jl")
using .PkgExt
else
function lazypkg()
pkg_id = Base.PkgId(Base.UUID("44cfe95a-1eb2-52ea-b672-e2afdf69b78f"), "Pkg")
@something(get(Base.loaded_modules, pkg_id, nothing),
Base.require(pkg_id))
end
end
function ensureglobalpkg(pkg::String)
if isnothing(Base.find_package(pkg))
Pkg = lazypkg()
oldproj = Base.current_project()
Pkg.activate()
@info "Installing $pkg"
lazypkg().add(pkg)
if isnothing(oldproj)
Pkg.activate()
else
Pkg.activate(oldproj)
end
end
end
function theme_term end # For cairomakie.jl
function __init__()
IS_SSH[] = haskey(ENV, "SSH_CLIENT") || haskey(ENV, "SSH_TTY")
if isinteractive()
TERM[] = termcode()
Main.Threads.@spawn if TERM[] == "xterm-kitty"
termtitle(pwd())
end
if ENV["TERM"] != "dumb"
replsetup()
end
end
end
precompile(termtitle, ())
precompile(replsetup, ())
precompile(_termcolors, ())
precompile(termcolors, ())
precompile(termtheme, ())
precompile(Autoloads.autoload_loadpkg, (Symbol,))
precompile(Autoloads.autoload_scan!, (Expr,))
precompile(Autoloads.autoload_scan!, (Symbol,))
precompile(Autoloads.autoload_scan!, (Any,))
precompile(Autoloads.read_named_envs!, ())
precompile(Autoloads.repl_scan_autoloads!, (Expr,))
precompile(Autoloads.repl_scan_autoloads!, (Nothing,))
end