Refactor install scripts
- Support emacs installation - Export DOTFILES env var to simplify setup. - Change filenames for consistency
This commit is contained in:
parent
3c8e6f0cc5
commit
3135e5faf2
5 changed files with 4 additions and 8 deletions
47
configs/setup
Executable file
47
configs/setup
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
dotfiles_path="${HOME}/dotfiles"
|
||||
configs_dir="${dotfiles_path}/configs"
|
||||
shared_configs="${configs_dir}/shared"
|
||||
|
||||
if [[ $(uname) == 'Darwin' ]]; then
|
||||
os_specific_configs="${configs_dir}/os_x"
|
||||
elif [[ $(uname) == 'Linux' ]]; then
|
||||
os_specific_configs="${configs_dir}/linux"
|
||||
fi
|
||||
|
||||
|
||||
function symlink_configs () {
|
||||
configs_dir=$1
|
||||
|
||||
for cf in $(find $configs_dir -type f -name ".*"); do
|
||||
filename=$(grep -o "[^\/]+$" <<<$cf)
|
||||
echo "$filename: "
|
||||
|
||||
if [ -f "${HOME}/${filename}" ] && [ ! -L "${HOME}/${filename}" ]; then
|
||||
echo -n "Backing up ${filename}... " && \
|
||||
mv "${HOME}/${filename}" "${HOME}/${filename}.bak" && \
|
||||
echo "Done."
|
||||
fi
|
||||
|
||||
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
|
||||
else
|
||||
echo -n "Symlinking to ${filename}... " && \
|
||||
ln -s $cf "${HOME}/${filename}" && \
|
||||
echo "Done."
|
||||
fi
|
||||
echo ""
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# handle shared configs
|
||||
symlink_configs $shared_configs
|
||||
|
||||
# handle os-specific configs
|
||||
symlink_configs $os_specific_configs
|
||||
Loading…
Add table
Add a link
Reference in a new issue