#!/bin/bash
-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
-# ex: ts=8 sw=4 sts=4 et filetype=sh
+# This file is part of dracut.
+# SPDX-License-Identifier: GPL-2.0-or-later
-# called by dracut
+# Prerequisite check(s) for module.
check() {
+
# hwclock does not exist on S390(x), bail out silently then
local _arch=${DRACUT_ARCH:-$(uname -m)}
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] && return 1
- [ -e /etc/localtime -a -e /etc/adjtime ] || return 1
- require_binaries /sbin/hwclock || return 1
+ # If the binary(s) requirements are not fulfilled the module can't be installed.
+ require_binaries hwclock || return 1
+ # Return 255 to only include the module, if another module requires it.
return 255
+
}
-# called by dracut
+# Module dependency requirements.
depends() {
+
+ # Return 0 to include the dependent module(s) in the initramfs.
return 0
+
}
-# called by dracut
+# Install the required file(s) and directories for the module in the initramfs.
install() {
- inst /usr/share/zoneinfo/UTC
- inst /etc/localtime
- inst /etc/adjtime
+
inst_hook pre-trigger 00 "$moddir/warpclock.sh"
- inst /sbin/hwclock
+
+ inst_multiple -o \
+ /usr/share/zoneinfo/UTC \
+ /etc/localtime \
+ /etc/adjtime \
+ hwclock
+
}
#!/bin/sh
+# This file is part of dracut warpclock module.
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Set the kernel's timezone and reset the system time
+# if adjtime is set to LOCAL.
if test -e /etc/adjtime; then
while read -r line; do