1
Files
flake-nixinator/config/neovim/refresh_config.sh

61 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copy init.lua
INIT_PATH="$(readlink -f ~/.config/nvim/init.lua)"
cp -f "$INIT_PATH" ./config.lua
cp -f "$INIT_PATH" ./config_nix.lua
echo "Copied $INIT_PATH to ./config.lua and ./config_nix.lua"
chmod +w ./config.lua
chmod +w ./config_nix.lua
echo "Fixed permission for ./config.lua and ./config_nix.lua"
echo ""
# Copy all plugins
rm -rf ./store/* # TODO: Check if ./store even exists
echo "Cleared ./store/"
STORE_PATHS=$(rg -oN "\"/nix/store/.*?(lazy-plugins|vimplugin-nvim-treesitter-.*?|treesitter-parsers)\"" config.lua | uniq | sd "\"" "")
for STORE_PATH in $STORE_PATHS
do
cp -Lr "$STORE_PATH" ./store/
echo "Copied $STORE_PATH to ./store/"
done
chmod -R +w ./store/*
echo "Fixed permissions for ./store"
echo ""
# Fix plugin paths
for IDENTIFIER in "treesitter-parsers" "lazy-plugins" "nvim-treesitter"
do
CURRENT_PATH=$(eza -1 ./store | grep $IDENTIFIER)
mv "./store/$CURRENT_PATH" "./store/$IDENTIFIER"
echo "Moved ./store/$CURRENT_PATH to ./store/$IDENTIFIER"
done
echo ""
BASE_PATH="/home/lab/smchurla/Downloads/flake-nixinator/config/neovim/store"
for IDENTIFIER in "treesitter-parsers" "lazy-plugins" "nvim-treesitter"
do
REPLACE_STRINGS=$(rg -oN "\"/nix/store/.*?$IDENTIFIER.*?\"" ./config.lua | uniq | sd "\"" "")
for REPLACE_STRING in $REPLACE_STRINGS
do
if [[ $REPLACE_STRING =~ .*$IDENTIFIER/.* ]];
then
# Trailing / means not the entire string can be replaced
REPLACE_STRING=$(dirname "$REPLACE_STRING")
sd "$REPLACE_STRING" "$BASE_PATH/$IDENTIFIER" ./config.lua
echo "Substituted $REPLACE_STRING with $BASE_PATH/$IDENTIFIER"
else
# No trailing / means the entire string can be replaced
sd "$REPLACE_STRING" "$BASE_PATH/$IDENTIFIER" ./config.lua
echo "Substituted $REPLACE_STRING with $BASE_PATH/$IDENTIFIER"
fi
done
done
echo ""
sd "/home/christoph" "/home/lab/smchurla" ./config.lua
echo "Substituted /home/christoph with /home/lab/smchurla"