<commit_before>#!/bin/bash

################################################################################
# symlink_dotfiles.sh
#
# This script backs up any old dotfiles on the system, and symlinks the new ones
# to their proper place in the home folder.
################################################################################

set -e # Terminate script if anything exits with a non-zero value
set -u # Prevent unset variables

fancy_echo() {
  local fmt="$1"; shift

  # shellcheck disable=SC2059
  printf "\n$fmt\n" "$@"
}

################################################################################
# Set some variables
################################################################################

DOTFILES=$HOME/dotfiles
OLD_DOTFILES_BACKUP=$HOME/old_dotfiles_backup
files="gemrc gitignore_global gitconfig tmux.conf railsrc vimrc zshrc"

################################################################################
# Back up old dotfiles if needed
################################################################################

cd $HOME

if [ -d $DOTFILES ]; then
  fancy_echo "Backing up old dotfiles to $HOME/old_dotfiles_backup..."
  rm -rf $OLD_DOTFILES_BACKUP
  cp -R $DOTFILES $OLD_DOTFILES_BACKUP
fi

################################################################################
# Symklink new dotfiles to $HOME
################################################################################

git clone https://github.com/joshukraine/dotfiles.git $DOTFILES_DIR

fancy_echo "Creating symlinks..."
for file in $files; do
  if [ -f $HOME/$file ]; then
    echo ".$file already present. Backing up..."
    cp $HOME/$file "$HOME/${file}_backup"
    rm -f $HOME/$file
  fi
  fancy_echo "-> Linking $DOTFILES/$file to $HOME/.$file..."
  ln -nfs "$DOTFILES/$file" "$HOME/.$file"
done
<commit_msg>Streamline logic. Bring into sync with Linux version. This file only symlinks files (and backs up individual dotfiles if needed). Other operations are handled in setup-mac.sh.<commit_after>#!/bin/sh

################################################################################
# symlink_dotfiles.sh
#
# This script backs up any old dotfiles on the system, and symlinks the new ones
# to their proper place in the home folder.
################################################################################

set -e # Terminate script if anything exits with a non-zero value
set -u # Prevent unset variables

################################################################################
# Initial setup
################################################################################

DOTFILES=$HOME/dotfiles
files="gemrc gitignore_global gitconfig tmux.conf railsrc vimrc zshrc"

fancy_echo() {
  local fmt="$1"; shift

  # shellcheck disable=SC2059
  printf "\n$fmt\n" "$@"
}

cd $HOME

################################################################################
# Symklink new dotfiles to $HOME
################################################################################

fancy_echo "Creating symlinks..."

for file in $files; do
  if [ -f $HOME/.$file ]; then
    fancy_echo ".$file already present. Backing up..."
    cp $HOME/.$file "$HOME/.${file}_backup"
    rm -f $HOME/.$file
  fi
  fancy_echo "-> Linking $DOTFILES_DIR/$file to $HOME/.$file..."
  ln -nfs "$DOTFILES_DIR/$file" "$HOME/.$file"
done
{'fraction_non_alphanumeric': 0.4129397734048897, 'fraction_numerical': 0.0029815146094215863, 'mean_word_length': 5.975051975051975, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4709858', 'n_tokens_mistral': 860, 'n_tokens_neox': 823, 'n_words': 258}