Files
dotfiles/nvim/lua/bootstrap.lua
Nick Mello 65d08b0772 all: Initial dotfiles
Import an initial copy of all of my dotfiles

Signed-off-by: Nicholas Mello <nick@nmello.dev>
2025-08-14 19:21:24 -05:00

75 lines
1.5 KiB
Lua

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
local offline_marker = vim.fn.stdpath("config") .. "/.offline"
-- Define your functions first
local function is_offline()
return vim.fn.filereadable(offline_marker) == 1
end
local function set_offline()
local f = io.open(offline_marker, "w")
if f then
f:write("offline\n")
f:close()
end
end
local function clear_offline()
os.remove(offline_marker)
end
local function has_network()
local handle = io.popen("ping -c 1 github.com 2>/dev/null")
if handle then
local result = handle:read("*a")
handle:close()
return result and #result > 0
end
return false
end
local function install_lazy()
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
print("lazy.nvim installed!")
end
-- Now call the functions
if not vim.loop.fs_stat(lazypath) then
if is_offline() then
print("Offline mode enabled. Skipping lazy.nvim install.")
return
else
if has_network() then
install_lazy()
clear_offline()
else
print("No network detected. Enabling offline mode.")
set_offline()
return
end
end
end
vim.opt.rtp:prepend(lazypath)
require('lazy').setup({
spec = {
-- import your plugins
{ import = "plugins" },
},
})
vim.api.nvim_create_user_command("GoOnline", function()
clear_offline()
print(".offline marker cleared. Restart Neovim to attempt plugin install again.")
end, {})