summarylogtreecommitdiffstats
path: root/10-chrony
blob: 3e392bc6da70b195c30beca94b825c063f7ba98c (plain)
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
#!/bin/sh

INTERFACE=$1
STATUS=$2

# Make sure we're always getting the standard response strings
LANG='C'

# Chrony set-up
CHRONY=/usr/bin/chronyc
CONFIG=/etc/chrony.conf
KEYFILE=`grep ^keyfile $CONFIG | sed 's/[^ ]* //' -`
COMMANDKEY=`grep ^commandkey $CONFIG | sed 's/[^ ]* //' -`
PASSWORD=`grep ^$COMMANDKEY $KEYFILE | sed 's/.*[^ ] //' -`
STATECMD='nmcli -t --fields STATE g'

chrony_cmd() {
	echo Chrony going $1.
	exec $CHRONY <<EOF
password $PASSWORD
$1
EOF
}

case "$STATUS" in
  up)
    chrony_cmd online
  ;;
  vpn-up)
    chrony_cmd online
  ;;
  down)
    # Check for active interface, take offline if none is active
    if [ ! `${STATECMD}` = 'connected' ]; then
      chrony_cmd offline
    fi
  ;;
  vpn-down)
    # Check for active interface, take offline if none is active
    if [ ! `${STATECMD}` = 'connected' ]; then
      chrony_cmd offline
    fi
  ;;
esac