123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/bin/bash
- # Go trough all the files available in this folder.
- commonFiles=();
- for sourceFile in .*; do
- # Exclude some files.
- if [[ "$sourceFile" == "install_unattended.sh" || "$sourceFile" == "install.sh" ]] || [[ "$sourceFile" == "README.md" ]] || [[ "$sourceFile" == "." ]] || [[ "$sourceFile" == ".." ]] || [[ "$sourceFile" == ".git" ]]; then
- continue;
- fi;
- # Set the target path for the source file.
- # We'll port them to the ~/ (home) directory.
- targetFile="$HOME/$sourceFile";
- # The file already exists.
- if [ -e "$targetFile" ]; then
- # The source and target point to the same file, continue.
- [ "$sourceFile" -ef "$targetFile" ] && continue;
- # The content of the file is the same, continue.
- diff -rq "$sourceFile" "$targetFile" > /dev/null 2>&1 && continue;
- # The source file is another file than our dotfile.
- # Store it in the commonFiles array so we can back it up.
- commonFiles+=("$sourceFile");
- fi;
- done;
- # Show the files that will be overwritten.
- conflictCount=${#commonFiles[@]};
- # Create a suffix with a timestamp so the user can see which
- # files and when they've been backupped.
- backupSuffix=".jsVimconfig-$(date +'%Y%m%d-%H%M%S')";
- # Rename the conflicting files as backup.
- for sourceFile in "${commonFiles[@]}"; do
- targetFile="$HOME/$sourceFile";
- mv -v "$targetFile" "$targetFile$backupSuffix";
- done;
- # Symlink the files in the home dir by those in the dotfiles repo.
- for sourceFile in .*; do
- # Exclude some files.
- if [[ "$sourceFile" == "install_unattended.sh" || "$sourceFile" == "install.sh" ]] || [[ "$sourceFile" == "README.md" ]] || [[ "$sourceFile" == "." ]] || [[ "$sourceFile" == ".." ]] || [[ "$sourceFile" == ".git" ]]; then
- continue;
- fi;
- targetFile="$HOME/$sourceFile";
- # Delete the old file and replace it by the symlink.
- rm -rf "$targetFile" &&
- ln -vs "$PWD/$sourceFile" "$targetFile";
- done;
- # This will add a tag to our prompt, so we know which environment we're in.
- # It is adaptable in ~/.bash_environment
- touch ~/.bash_environment;
- echo -e "export __prompt_environment='[DEVELOPMENT] '" | tee ~/.bash_environment > /dev/null;
|