From bd9f34c7690b99d333f852a4bc1970b4c0c6f8e1 Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Sat, 23 Sep 2023 14:51:31 +0100 Subject: [PATCH] checkpoint --- .helpers/config | 38 +++++++++++++++++++++++--------------- Makefile | 4 ++-- README.asciidoc | 17 ++++++++++++++++- 3 files changed, 41 insertions(+), 18 deletions(-) diff --git a/.helpers/config b/.helpers/config index 89a4cbb..72afd2c 100755 --- a/.helpers/config +++ b/.helpers/config @@ -1,10 +1,18 @@ #!/usr/bin/env bash -set -euo pipefail +set -o errexit +set -o nounset +set -o pipefail + +CONFIG_ROOT="${XDG_CONFIG_HOME:-null}" + +if [[ "${CONFIG_ROOT}" == "null" ]]; then + CONFIG_ROOT="${HOME}/.config" +fi ROOT_DIR="$( cd "$( dirname $0 )/.." && pwd )" NEOVIM_CONFIG_SOURCE_DIR="${ROOT_DIR}/nvim" -NEOVIM_CONFIG_DESTINATION_DIR="${XDG_CONFIG_HOME}/nvim" +NEOVIM_CONFIG_DESTINATION_DIR="${CONFIG_ROOT}/nvim" VERSION="$( git describe --tags | tr -d '\n' )" PROJECT_NAME="nvim.d" CODEFLOW_GROUP="linux-home" @@ -14,26 +22,26 @@ action="$1" function backup { if [ -d "${NEOVIM_CONFIG_DESTINATION_DIR}" ]; then echo "[INFO] backing up existing config..." - timestamp=$( date +"%Y.%m.%dT%H.%M.%S" ) - backup_dir="${ROOT_DIR}/backup" - mkdir -p ${backup_dir} - cd ${NEOVIM_CONFIG_DESTINATION_DIR} - tar czf "${backup_dir}/neovim-config-${timestamp}.tar.gz" . + TIMESTAMP=$( date +"%Y.%m.%dT%H.%M.%S" ) + BACKUP_DIR="${ROOT_DIR}/backup" + mkdir -p "${BACKUP_DIR}" + cd "${NEOVIM_CONFIG_DESTINATION_DIR}" + tar czf "${BACKUP_DIR}/neovim-config-${TIMESTAMP}.tar.gz" . fi } function clean { - rm -f ${NEOVIM_CONFIG_DESTINATION_DIR}/init.lua - find ${NEOVIM_CONFIG_DESTINATION_DIR} -maxdepth 1 -mindepth 1 -type d -not -iwholename "*/plugin" | xargs rm -rf + rm -f "${NEOVIM_CONFIG_DESTINATION_DIR}/init.lua" + find "${NEOVIM_CONFIG_DESTINATION_DIR}" -maxdepth 1 -mindepth 1 -type d -not -iwholename "*/plugin" | xargs rm -rf } -function update { - mkdir -p ${NEOVIM_CONFIG_DESTINATION_DIR} +function install { + mkdir -p "${NEOVIM_CONFIG_DESTINATION_DIR}" # Syncing the neovim configuration files echo "[INFO] Syncing ${NEOVIM_CONFIG_SOURCE_DIR} to ${NEOVIM_CONFIG_DESTINATION_DIR}..." - rsync -avh ${NEOVIM_CONFIG_SOURCE_DIR}/ ${NEOVIM_CONFIG_DESTINATION_DIR} - chmod a-rwx,u+rwx ${NEOVIM_CONFIG_DESTINATION_DIR} + rsync -avh "${NEOVIM_CONFIG_SOURCE_DIR}/" "${NEOVIM_CONFIG_DESTINATION_DIR}" + chmod a-rwx,u+rwx "${NEOVIM_CONFIG_DESTINATION_DIR}" # Ensuring the state directories are present mkdir -p ${XDG_STATE_HOME}/nvim/{backup,swap,undo,view} ${XDG_STATE_HOME}/logs/nvim ${XDG_DATA_HOME}/nvim/spell @@ -64,8 +72,8 @@ case ${action} in clean) clean ;; - update) - update + install) + install ;; package) package diff --git a/Makefile b/Makefile index eaaa24b..7f758f3 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,8 @@ backup: @bash ./.helpers/config backup -update: - @bash ./.helpers/config update +install: + @bash ./.helpers/config install clean: backup @bash ./.helpers/config clean diff --git a/README.asciidoc b/README.asciidoc index 4964ff7..45be509 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -1,4 +1,4 @@ -= Nvim.d += nvim.d My Neovim configuration for neovim version 0.9.0+. @@ -6,6 +6,21 @@ My Neovim configuration for neovim version 0.9.0+. == Installation +- clone repo or download the latest release +- if you have eisting neovim config you can take a backup of this. Timestamped tar file created in backup dir within the current dir. + ``` + make backup + ``` +- install config with your XDG_CONIFIG_HOME dir (default is ~/.config) + ``` + make install + ``` +- install the lazy package manager + ``` + make install_lazy + ``` +- start neovim. when first launched the lazy package manager will proceed to install all missing plugins. + == Plugins [%header,cols=3*]