-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathset_mail_transport.sh
103 lines (83 loc) · 1.55 KB
/
set_mail_transport.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/bash
set -e
BASE=${HOME}/atlassian-tools
. ${BASE}/conf/config.sh
. ${BASE}/lib/utils.sh
###
# VARS
###
MAIL_CONFIG=/etc/postfix/main.cf
TRANSPORT=''
ECHO=''
ACTION=''
###
# FUNCTIONS
###
ensure_transport_cf_line() {
grep -q '^default_transport = ' "${MAIL_CONFIG}" || \
echo "default_transport = none" >> "${MAIL_CONFIG}"
}
set_transport() {
local _val="$1"
ensure_transport_cf_line
sed -i "s/^default_transport = .*/default_transport = $_val/" "${MAIL_CONFIG}"
}
assert_transport_match() {
local _val="$1"
grep -q "^default_transport = ${_val}" "${MAIL_CONFIG}" \
&& success "${param}d mail transport" \
|| err "${param}ing mail transport"
}
status_check() {
local _cf=$( grep '^default_transport = ' "${MAIL_CONFIG}" )
local _live=$( postconf | grep '^default_transport = ' )
cat << ENDHERE
Config = "$_cf"
Live = "$_live"
ENDHERE
}
print_help() {
cat << ENDHERE
Synopsis: ${0} ACTION
where ACTION is one of:
enable
disable
check status st ls
ENDHERE
}
###
# MAIN
###
[[ $VERBOSE -eq $YES ]] && set -x
[[ $DEBUG -eq $YES ]] && ECHO="echo"
param=$1
case $param in
(enable)
TRANSPORT=smtp
ACTION=set
;;
(disable)
TRANSPORT=hold
ACTION=set
;;
(check|status|st|ls)
ACTION=check
;;
(-h)
print_help
exit
;;
(*)
die "missing or unknown param '$param'"
;;
esac
case $ACTION in
(set)
$ECHO set_transport "$TRANSPORT"
$ECHO assert_transport_match "$TRANSPORT"
$ECHO status_check
;;
(check)
$ECHO status_check
;;
esac