You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.2 KiB

#!/bin/sh
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../clockspeed/clockctl.sh
# Copyright (C) 2008 - 2012 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. A copy of the
# GNU General Public License can be found in the file COPYING.
# --- SDE-COPYRIGHT-NOTE-END ---
# Based on: http://www.thedjbway.org/clockspeed/clockctl
# interface to djb clockspeed (0.62)
# wcm, 2003.11.26 - 2003.11.26
# ===
die() {
echo "$0: $*" >&2
exit 1
}
# read configuration:
if [ -r /etc/conf/clockspeed ] ; then
. /etc/conf/clockspeed
else
die "configuration error: unable to read /etc/conf/clockspeed"
fi
# clock_pick function:
clock_pick() {
case "${CLOCK_TYPE}" in
ntp|NTP) D_bindir/sntpclock "${CLOCK_IP}"
;;
tai|TAI) D_bindir/taiclock "${CLOCK_IP}"
;;
*)
die "configuration error: CLOCK_TYPE not recognized"
;;
esac
}
# process command:
case "$1" in
a|atto)
echo "Viewing current attoseconds in hardware tick:"
D_bindir/clockview < /var/state/clockspeed/atto
;;
m|mark)
[ -p /var/state/clockspeed/adjust ] ||
die "Cannot obtain new calibration mark (clockspeed running?)"
echo "Obtaining new calibration mark from master server at ${CLOCK_IP}:"
clock_pick | tee /var/state/clockspeed/adjust | D_bindir/clockview
;;
s|sync)
echo "Setting system clock with master server at ${CLOCK_IP}:"
clock_pick | D_bindir/clockadd && \
clock_pick | D_bindir/clockview
;;
v|view)
echo "Checking system clock against master server at ${CLOCK_IP} (clockview):"
clock_pick | D_bindir/clockview
;;
h|help)
cat <<-EOT
clockspeed control:
atto -- inspect current "attoseconds"
mark -- obtain new calibration mark for clockspeed
sync -- set the system clock with master time server
view -- check system clock against master time server
help -- this screen
EOT
exit 0
;;
*)
echo "Usage: $0 [ a|atto | m|mark | s|sync | v|view | h|help ]"
exit 1
;;
esac
### that's all, folks!