-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.sh
executable file
·75 lines (56 loc) · 1.43 KB
/
setup.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/env bash
############################################
# Prepare environment
crontab_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$crontab_dir"
# Load predefined functions
. ../utils/functions.sh
############################################
# Script body
# Default values
default_action="B"
default_backupFile="$crontab_dir/crontab.bak"
action="$default_action"
printUsage() {
echo "Add crontab jobs"
echo ""
echo "Usage: $(basename $0) [options]"
echo "Options:"
echo " -b Backup old cronjobs before updating"
echo " -h Show help message"
}
while getopts ':bh' opt; do
case "$opt" in
b)
action="B"
;;
h)
printUsage
exit 0
;;
:)
echo -e "$0: option requires an argument.\n"
printUsage
exit 1
;;
?)
echo -e "$0: illegal option.\n"
printUsage
exit 1
;;
esac
done
if [[ "$action" == "B" ]]; then
info "Backing up current crontab..."
. ./export.sh -f "$default_backupFile"
if [[ -f "$default_backupFile" && ! -s "$default_backupFile" ]]; then
info "File $default_backupFile is empty, no crontab jobs to backup, removing file..."
rm -rf "$default_backupFile"
fi
fi
# Export current crontab to temporary file to append new jobs
. ./export.sh
# Add crontab jobs here
. ./import.sh
# Remove temporary file
rm -rf "$crontab_dir/crontab.txt"