live-build/scripts/build/chroot_hostname

107 lines
2.7 KiB
Bash
Executable File

#!/bin/sh
## live-build(7) - System Build Scripts
## Copyright (C) 2016-2020 The Debian Live team
## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
##
## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
## This is free software, and you are welcome to redistribute it
## under certain conditions; see COPYING for details.
set -e
# Including common functions
[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh
# Setting static variables
DESCRIPTION="Manage /bin/hostname"
USAGE="${PROGRAM} {install|remove} [--force]"
# Processing arguments and configuration files
Init_config_data "${@}"
_ACTION="${1}"
shift
# Requiring stage file
Require_stagefiles config bootstrap
case "${_ACTION}" in
install)
# Checking stage file
Check_stagefile
# Acquire lock file
Acquire_lockfile
# Create hostname file
Echo_message "Configuring file /etc/hostname"
echo "localhost.localdomain" > chroot/etc/hostname
# Create custom hostname
Echo_message "Configuring file /bin/hostname"
Chroot chroot dpkg-divert --rename --quiet --add /usr/bin/hostname
# begin-remove-after: released:forky
# In the bookworm to trixie upgrade, hostname moves hostname
# from /bin to /usr/bin. Duplicate the diversion to cover both.
# DEP17 P3 M18
Chroot chroot dpkg-divert --rename --quiet --add --divert /bin/hostname.distrib.usr-is-merged /bin/hostname
# end-remove-after
cat > chroot/usr/bin/hostname << EOF
#!/bin/sh
echo "localhost.localdomain"
EOF
chmod 755 chroot/usr/bin/hostname
# Creating stage file
Create_stagefile
;;
remove)
Echo_message "Deconfiguring file /etc/hostname"
# Checking stage file
Ensure_stagefile_exists
# Acquire lock file
Acquire_lockfile
# Copying hostname from includes, if existing
INCLUDE_DIR=$(select_includes_chroot)
# includes.chroot_before_packages takes the highest precedence
if [ -e config/includes.chroot_before_packages/etc/hostname ]
then
INCLUDE_DIR="includes.chroot_before_packages"
fi
if [ -n "${INCLUDE_DIR}" ] && [ -e config/"${INCLUDE_DIR}"/etc/hostname ]
then
cp config/"${INCLUDE_DIR}"/etc/hostname chroot/etc/hostname
chmod 644 chroot/etc/hostname
Chroot chroot "chown root:root /etc/hostname"
fi
Echo_message "Deconfiguring file /bin/hostname"
# Remove custom hostname
rm -f chroot/bin/hostname
# begin-remove-after: released:forky
Chroot chroot dpkg-divert --rename --quiet --remove /bin/hostname
# end-remove-after
Chroot chroot dpkg-divert --rename --quiet --remove /usr/bin/hostname
# Removing stage file
Remove_stagefile
;;
*)
Echo_error "Invalid action parameter: '${_ACTION}'"
Usage --fail
;;
esac