tvl-depot/configs/setup

48 lines
1.3 KiB
Text
Raw Normal View History

#!/usr/bin/env bash
dotfiles_path="${HOME}/dotfiles"
configs_dir="${dotfiles_path}/configs"
shared_configs="${configs_dir}/shared"
2016-11-10 17:47:44 +01:00
if [[ $(uname) == 'Darwin' ]]; then
os_specific_configs="${configs_dir}/os_x"
elif [[ $(uname) == 'Linux' ]]; then
os_specific_configs="${configs_dir}/linux"
fi
2016-11-10 17:47:44 +01:00
function symlink_configs () {
configs_dir=$1
2016-11-10 17:47:44 +01:00
for cf in $(find $configs_dir -type f -name ".*"); do
filename=$(grep -o "[^\/]+$" <<<$cf)
echo "$filename: "
if [ -f "${HOME}/${filename}" ] && [ ! -L "${HOME}/${filename}" ]; then
2017-06-23 19:11:03 +02:00
echo -n "Backing up ${filename}... " && \
mv "${HOME}/${filename}" "${HOME}/${filename}.bak" && \
echo "Done."
fi
2016-11-10 17:47:44 +01:00
if [ -L "${HOME}/${filename}" ]; then
if [ $(readlink "${HOME}/${filename}") = $cf ]; then
echo "Already properly symlinked to ${configs_dir}."
else
echo "Already symlinked but NOT to the proper location. Aborting..."
fi
2016-11-10 17:47:44 +01:00
else
2017-06-23 19:11:03 +02:00
echo -n "Symlinking to ${filename}... " && \
ln -s $cf "${HOME}/${filename}" && \
echo "Done."
2016-11-10 17:47:44 +01:00
fi
echo ""
done
}
# handle shared configs
symlink_configs $shared_configs
# handle os-specific configs
symlink_configs $os_specific_configs