-
Notifications
You must be signed in to change notification settings - Fork 0
/
git-setup.txt
69 lines (57 loc) · 1.69 KB
/
git-setup.txt
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
#!/bin/bash
# vim:set ft=sh:
# Notes
# Run this as:
# $ wget -O - https://raw.githubusercontent.com/tsukasa-au/dotfiles-generic/master/git-setup.txt | bash
# or
# $ curl https://raw.githubusercontent.com/tsukasa-au/dotfiles-generic/master/git-setup.txt | bash
# or
# $ curl https://raw.githubusercontent.com/tsukasa-au/dotfiles-generic/master/git-setup.txt | R=http://host/repo bash
function die {
echo "$@" >&2
exit 1
}
# Some blank lines
echo -ne "\n\n\n"
GITDOTFILES="https://github.com/tsukasa-au/dotfiles-generic.git"
if [ -n "${R}" ]; then
GITDOTFILES="${R}"
fi
echo "Using repository: ${GITDOTFILES}"
sleep 3
# Check for mercurial install
if ! git --help &> /dev/null; then
echo "You must install git..."
if apt-get &> /dev/null; then
echo "Using apt-get..."
sudo apt-get install git
elif pacman &> /dev/null; then
echo "Using yum..."
sudo pacman -Syu git
fi
if ! git --help &> /dev/null; then
die "You're on your own. Exiting..."
fi
fi
# Safety checks
cd
DOTDIR="${DOTDIR:-.dotfiles}"
if [ -e "${DOTDIR}" ]; then
die "Error, ${DOTDIR} already exists."
fi
# Install and backup
git clone "${GITDOTFILES}" "${DOTDIR}" || die "Could not clone '${GITDOTFILES}'"
mkdir oldsettings || die "Could not create the directory 'oldsettings'"
for i in $(ls -A "${DOTDIR}" | grep -v '^\.git\(ignore\)\?$' | grep -v README | grep -v git-setup.txt); do
echo "${i}"
if [ -e "${i}" -o -L "${i}" ]; then
mv "${i}" oldsettings/
fi
ln -s "${DOTDIR}/${i}" ./
done
# Restore some important files that may already have existed
for to_keep in .ssh/{authorized_keys,known_hosts,id_rsa{,.pub}}; do
if [ -e "oldsettings/${to_keep}" ]; then
cp "oldsettings/${to_keep}" "$(dirname "${to_keep}")"
fi
done