#!/bin/bash cd "$(dirname "${BASH_SOURCE[0]}")" \ && . "utils.sh" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - create_symlinks() { local -a FILES_TO_SYMLINK=( "shell/bash_aliases" "shell/bash_autocompletion" "shell/bash_exports" "shell/bash_functions" "shell/bash_init" "shell/bash_logout" "shell/bash_options" "shell/bash_profile" "shell/bash_prompt" "shell/bashrc" "shell/curlrc" "shell/inputrc" "git/gitattributes" "git/gitconfig" "git/gitignore" "tmux/tmux.conf" "vim/vim" "vim/vimrc" ) local i="" local sourceFile="" local targetFile="" local skipQuestions=false # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - skip_questions "$@" \ && skipQuestions=true # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for i in "${FILES_TO_SYMLINK[@]}"; do local sourceFile="$(cd .. && pwd)/$i" local targetFile="$HOME/.$(printf "%s" "$i" | sed "s/.*\/\(.*\)/\1/g")" if [ ! -e "$targetFile" ] || $skipQuestions; then execute \ "ln -fs $sourceFile $targetFile" \ "$targetFile → $sourceFile" elif [ "$(readlink "$targetFile")" = "$sourceFile" ]; then print_success "$targetFile → $sourceFile" else if ! $skipQuestions; then ask_for_confirmation "'$targetFile' already exists, do you want to overwrite it?" if answer_is_yes; then rm -rf "$targetFile" execute \ "ln -fs $sourceFile $targetFile" \ "$targetFile → $sourceFile" else print_error "$targetFile → $sourceFile" fi fi fi done } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main() { print_in_purple "\n • Create symbolic links\n\n" create_symlinks "$@" } main "$@"