-
Notifications
You must be signed in to change notification settings - Fork 0
/
deploy_init.sh
71 lines (43 loc) · 1.41 KB
/
deploy_init.sh
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
#!/bin/bash
# Script to copy files customised files to its destination
# This script will be run multiple times
# WARNING : Only add task to this script when SAFE to be re-run multiple times ( ie files overwritten )
repo=https://github.com/rwahyudi/deploy_initfiles.git
tmp_dir=/tmp/deploy_initfiles/
#### -------- Sanity checks ---------- ####
# - Ensure running as root
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
# - Ensure -f is present ( to avoid accidental run )
if [ "$1" != "-f" ]
then
echo "Usage : $0 -f"
echo
echo " This script will run standard deployment tasks and OVERWRITE changes on local server with the one specified on the repository"
echo " Use -f argument to run"
echo
exit 1
fi
# - Ensure git is installed
command -v git >/dev/null 2>&1 || { echo >&2 "Git is not installed. Aborting."; exit 1; }
# - Ensure clean start
rm -rf "$tmp_dir"
#### -------- Clone Repo ---------- ####
git clone "$repo" "$tmp_dir"
if [ $? -ne 0 ]
then
echo " Issue with cloning repo. Aborting"
exit 1
fi
######################################
#### TASKS
######################################
# -- Copy custom profile
rsync -av $tmp_dir/custom-profile.sh /etc/profile.d/custom-profile.sh
# -- Copy dotfiles
rsync -av $tmp_dir/.[^.]* /root/ --exclude=.git
# -- Copy bin files
mkdir -p /root/bin/
rsync -avr $tmp_dir/bin/ /root/bin/