summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2022-10-07 04:51:09 +0200
committerGitHub <[email protected]>2022-10-06 22:51:09 -0400
commitf6402563abb3ace148168a27e7889c961dd94bfd (patch)
tree028cd4e2b397802d582ef7e9f35d3c8eb159f7a4
parent40e2d5a1715ab7cdb0c4b4d849f1628caadb6842 (diff)
feat: enable global installation (#3161)
-rw-r--r--.github/workflows/format.yaml1
-rw-r--r--init.lua7
-rw-r--r--lua/lvim/config/init.lua6
-rw-r--r--lua/lvim/utils/git.lua15
-rw-r--r--utils/bin/lvim.ps12
-rw-r--r--utils/bin/lvim.template6
-rwxr-xr-xutils/installer/install.sh22
-rwxr-xr-xutils/installer/install_bin.sh3
8 files changed, 43 insertions, 19 deletions
diff --git a/.github/workflows/format.yaml b/.github/workflows/format.yaml
index 52103a54..27b061ef 100644
--- a/.github/workflows/format.yaml
+++ b/.github/workflows/format.yaml
@@ -22,6 +22,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
# CLI arguments
+ version: 0.15.1
args: --check .
shfmt-check:
diff --git a/init.lua b/init.lua
index a171dd53..75452843 100644
--- a/init.lua
+++ b/init.lua
@@ -1,5 +1,8 @@
-local init_path = debug.getinfo(1, "S").source:sub(2)
-local base_dir = init_path:match("(.*[/\\])"):sub(1, -2)
+local base_dir = vim.env.LUNARVIM_BASE_DIR
+ or (function()
+ local init_path = debug.getinfo(1, "S").source
+ return init_path:sub(2):match("(.*[/\\])"):sub(1, -2)
+ end)()
if not vim.tbl_contains(vim.opt.rtp:get(), base_dir) then
vim.opt.rtp:append(base_dir)
diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua
index fae6c518..ea36a9a0 100644
--- a/lua/lvim/config/init.lua
+++ b/lua/lvim/config/init.lua
@@ -118,7 +118,11 @@ function M:load(config_path)
if utils.is_file(user_config_file) then
Log:warn("Invalid configuration: " .. err)
else
- vim.notify_once(string.format("Unable to find configuration file [%s]", config_path), vim.log.levels.WARN)
+ vim.notify_once(
+ string.format("User-configuration not found. Creating an example configuration in %s", config_path)
+ )
+ local example_config = join_paths(get_lvim_base_dir(), "utils", "installer", "config.example.lua")
+ vim.loop.fs_copyfile(example_config, config_path)
end
end
diff --git a/lua/lvim/utils/git.lua b/lua/lvim/utils/git.lua
index 99c178f3..e1b5ccf2 100644
--- a/lua/lvim/utils/git.lua
+++ b/lua/lvim/utils/git.lua
@@ -1,6 +1,7 @@
local M = {}
local Log = require "lvim.core.log"
+local fmt = string.format
local if_nil = vim.F.if_nil
local function git_cmd(opts)
@@ -43,9 +44,16 @@ local function safe_deep_fetch()
local fetch_mode = result[1] == "true" and "--unshallow" or "--all"
ret = git_cmd { args = { "fetch", fetch_mode } }
if ret ~= 0 then
- Log:error("Git fetch failed! Please pull the changes manually in " .. get_lvim_base_dir())
+ Log:error(fmt "Git fetch %s failed! Please pull the changes manually in %s", fetch_mode, get_lvim_base_dir())
return
end
+ if fetch_mode == "--unshallow" then
+ ret = git_cmd { args = { "remote", "set-branches", "origin", "*" } }
+ if ret ~= 0 then
+ Log:error(fmt "Git fetch %s failed! Please pull the changes manually in %s", fetch_mode, get_lvim_base_dir())
+ return
+ end
+ end
return true
end
@@ -53,6 +61,11 @@ end
function M.update_base_lvim()
Log:info "Checking for updates"
+ if not vim.loop.fs_access(get_lvim_base_dir(), "w") then
+ Log:warn(fmt("Lunarvim update aborted! cannot write to %s", get_lvim_base_dir()))
+ return
+ end
+
if not safe_deep_fetch() then
return
end
diff --git a/utils/bin/lvim.ps1 b/utils/bin/lvim.ps1
index 32723c18..3ec8125c 100644
--- a/utils/bin/lvim.ps1
+++ b/utils/bin/lvim.ps1
@@ -10,4 +10,4 @@ $env:LUNARVIM_CONFIG_DIR = $env:LUNARVIM_CONFIG_DIR ?? "$env:XDG_CONFIG_HOME\lvi
$env:LUNARVIM_CACHE_DIR = $env:LUNARVIM_CACHE_DIR ?? "$env:XDG_CACHE_HOME\lvim"
$env:LUNARVIM_BASE_DIR = $env:LUNARVIM_BASE_DIR ?? "$env:LUNARVIM_RUNTIME_DIR\lvim"
-nvim -u "$env:LUNARVIM_RUNTIME_DIR\lvim\init.lua" @args
+nvim -u "$env:LUNARVIM_BASE_DIR\init.lua" @args
diff --git a/utils/bin/lvim.template b/utils/bin/lvim.template
index 1b18977d..c17d25be 100644
--- a/utils/bin/lvim.template
+++ b/utils/bin/lvim.template
@@ -1,7 +1,9 @@
-#!/bin/sh
+#!/usr/bin/env bash
export LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-RUNTIME_DIR_VAR}"
export LUNARVIM_CONFIG_DIR="${LUNARVIM_CONFIG_DIR:-CONFIG_DIR_VAR}"
export LUNARVIM_CACHE_DIR="${LUNARVIM_CACHE_DIR:-CACHE_DIR_VAR}"
-exec nvim -u "$LUNARVIM_RUNTIME_DIR/lvim/init.lua" "$@"
+export LUNARVIM_BASE_DIR="${LUNARVIM_BASE_DIR:-BASE_DIR_VAR}"
+
+exec -a lvim nvim -u "$LUNARVIM_BASE_DIR/init.lua" "$@"
diff --git a/utils/installer/install.sh b/utils/installer/install.sh
index fee0e420..cafd92ad 100755
--- a/utils/installer/install.sh
+++ b/utils/installer/install.sh
@@ -2,20 +2,20 @@
set -eo pipefail
#Set branch to master unless specified by the user
-declare LV_BRANCH="${LV_BRANCH:-"master"}"
-declare -r LV_REMOTE="${LV_REMOTE:-lunarvim/lunarvim.git}"
-declare -r INSTALL_PREFIX="${INSTALL_PREFIX:-"$HOME/.local"}"
+declare -x LV_BRANCH="${LV_BRANCH:-"master"}"
+declare -xr LV_REMOTE="${LV_REMOTE:-lunarvim/lunarvim.git}"
+declare -xr INSTALL_PREFIX="${INSTALL_PREFIX:-"$HOME/.local"}"
-declare -r XDG_DATA_HOME="${XDG_DATA_HOME:-"$HOME/.local/share"}"
-declare -r XDG_CACHE_HOME="${XDG_CACHE_HOME:-"$HOME/.cache"}"
-declare -r XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-"$HOME/.config"}"
+declare -xr XDG_DATA_HOME="${XDG_DATA_HOME:-"$HOME/.local/share"}"
+declare -xr XDG_CACHE_HOME="${XDG_CACHE_HOME:-"$HOME/.cache"}"
+declare -xr XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-"$HOME/.config"}"
-declare -r LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-"$XDG_DATA_HOME/lunarvim"}"
-declare -r LUNARVIM_CONFIG_DIR="${LUNARVIM_CONFIG_DIR:-"$XDG_CONFIG_HOME/lvim"}"
-declare -r LUNARVIM_CACHE_DIR="${LUNARVIM_CACHE_DIR:-"$XDG_CACHE_HOME/lvim"}"
-declare -r LUNARVIM_BASE_DIR="${LUNARVIM_BASE_DIR:-"$LUNARVIM_RUNTIME_DIR/lvim"}"
+declare -xr LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-"$XDG_DATA_HOME/lunarvim"}"
+declare -xr LUNARVIM_CONFIG_DIR="${LUNARVIM_CONFIG_DIR:-"$XDG_CONFIG_HOME/lvim"}"
+declare -xr LUNARVIM_CACHE_DIR="${LUNARVIM_CACHE_DIR:-"$XDG_CACHE_HOME/lvim"}"
+declare -xr LUNARVIM_BASE_DIR="${LUNARVIM_BASE_DIR:-"$LUNARVIM_RUNTIME_DIR/lvim"}"
-declare -r LUNARVIM_LOG_LEVEL="${LUNARVIM_LOG_LEVEL:-warn}"
+declare -xr LUNARVIM_LOG_LEVEL="${LUNARVIM_LOG_LEVEL:-warn}"
declare BASEDIR
BASEDIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
diff --git a/utils/installer/install_bin.sh b/utils/installer/install_bin.sh
index c6ad5181..920f2fd5 100755
--- a/utils/installer/install_bin.sh
+++ b/utils/installer/install_bin.sh
@@ -26,7 +26,8 @@ function setup_shim() {
sed -e s"#RUNTIME_DIR_VAR#\"${LUNARVIM_RUNTIME_DIR}\"#"g \
-e s"#CONFIG_DIR_VAR#\"${LUNARVIM_CONFIG_DIR}\"#"g \
- -e s"#CACHE_DIR_VAR#\"${LUNARVIM_CACHE_DIR}\"#"g "$src" \
+ -e s"#CACHE_DIR_VAR#\"${LUNARVIM_CACHE_DIR}\"#"g \
+ -e s"#BASE_DIR_VAR#\"${LUNARVIM_BASE_DIR}\"#"g "$src" \
| tee "$dst" >/dev/null
chmod u+x "$dst"