dotfiles/create_links.sh
2023-10-16 09:14:26 +02:00

67 lines
1.5 KiB
Bash
Executable file

#!/usr/bin/env bash
FILE_PATH=$(readlink -f "$0")
REPO_DIR=$(dirname "$FILE_PATH")
BACKUP_DIR="$REPO_DIR/backup"
files=($(find $REPO_DIR/home/ -type f))
for file in ${files[@]}
do
file_base=$(basename -- "$file")
dest=$HOME/$file_base
if [ -L "$dest" ]; then
if [ ! -e "$dest" ];then
echo "Remove broken link: $dest"
rm "$dest"
else
echo "Already installed: $dest"
continue
fi
elif [ -e "$dest" ]; then
echo "Skipping already existing file, please remove manually: $dest"
continue
fi
ln -sv $file $dest
done
files=($(find "$REPO_DIR/.config" -mindepth 1 -maxdepth 1 -type d))
for file in ${files[@]}
do
base=$(basename -- "$file")
dest="$HOME/.config/$base"
if [ -L "$dest" ];then
if [ ! -e "$dest" ];then
echo "Remove broken link: $dest"
rm "$dest"
else
echo "Already installed: $dest"
continue
fi
elif [ -e "$dest" ]; then
echo "Already exstis: $dest"
echo "Backing up..."
mv "$dest" "$BACKUP_DIR/"
fi
ln -sv $file $dest
done
files=($(find "$REPO_DIR/.config" -maxdepth 1 -type f))
for file in ${files[@]}
do
base=$(basename -- "$file")
dest="$HOME/.config/$base"
if [ -L "$dest" ];then
if [ ! -e "$dest" ];then
echo "Remove broken link: $dest"
rm "$dest$"
else
echo "Already installed: $dest"
continue
fi
elif [ -e "$dest" ]; then
echo "Already exists: $dest"
echo "Backing up..."
mv "$dest" "$BACKUP_DIR/"
fi
ln -sv "$file" "$dest"
done