-
Notifications
You must be signed in to change notification settings - Fork 78
/
_setupdotfiles.zsh
executable file
·72 lines (60 loc) · 1.68 KB
/
_setupdotfiles.zsh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/zsh
export UNLINK=true
# SymLink the file, if it doesn't already exist
# 1) Identifies what directory is being worked on.
# 2) Unlinks, any existing file (if requested by option switch).
# 3) Create the new link
function symlinkifne {
echo "WORKING ON: $1"
# does it exist
if [[ -a $1 ]]; then
echo " WARNING: $1 already exists."
# If Unlink is requested
if [ "$UNLINK" = "true" ]; then
unlink $1
echo " Unlinking $1"
# create the link
export DOTLESS=`echo $1 | sed s/.//`
echo " Symlinking $DOTFILESDIRRELATIVETOHOME/$DOTLESS to $1"
ln -s $DOTFILESDIRRELATIVETOHOME/$DOTLESS $1
else
echo " SKIPPING $1."
fi
# does not exist
else
# create the link
export DOTLESS=`echo $1 | sed s/.//`
echo " Symlinking $DOTFILESDIRRELATIVETOHOME/$DOTLESS to $1"
ln -s $DOTFILESDIRRELATIVETOHOME/$DOTLESS $1
fi
}
echo "NOTE: This script must be run from the dotfiles repository directory"
echo "Determining paths..."
echo "HOME = $HOME"
#export DOTFILESDIRRELATIVETOHOME=$PWD
export DOTFILESDIRRELATIVETOHOME=.dotfiles
echo "DOTFILESDIRRELATIVETOHOME = $DOTFILESDIRRELATIVETOHOME"
echo "Creating links..."
pushd ~
symlinkifne .bash_profile
symlinkifne .bashrc
symlinkifne .Brewfile
symlinkifne .conf
symlinkifne .gemrc
symlinkifne .gitconfig
symlinkifne .gitignore
symlinkifne .netrc
symlinkifne .profile
symlinkifne .rvmrc
symlinkifne .shellactivities
symlinkifne .shellaliases
symlinkifne .shellpaths
symlinkifne .shellvars
symlinkifne .slate
symlinkifne .vimrc
symlinkifne .zlogout
symlinkifne .zprofile
symlinkifne .zshenv
symlinkifne .zshrc
symlinkifne .vim
popd