#!/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="Build source images"
USAGE="${PROGRAM} [--force]"

# Automatically populating config tree
Auto_build_config

# Processing arguments and configuration files
Init_config_data "${@}"

if [ "${LB_SOURCE}" != "true" ]; then
	Echo_message "Source stage disabled, skipping"
	exit 0
fi

# Setting up cleanup function
Setup_clean_exit

CHROOT_PREP="hosts resolv hostname archives"

# Configuring chroot (enabling networking)
lb chroot_prep install "${CHROOT_PREP}" mode-archives-source "${@}"

# Preparing images
lb source_live "${@}"
lb source_debian "${@}"
lb source_disk "${@}"
lb source_hooks "${@}"
lb source_checksums "${@}"

# Apply SOURCE_DATE_EPOCH to all modified and created files
find source -newermt "$(date -d@${SOURCE_DATE_EPOCH} '+%Y-%m-%d %H:%M:%S')" -printf "%y %p\n" -exec touch '{}' -d@${SOURCE_DATE_EPOCH} --no-dereference ';' > source.modified_timestamps

# Building images
lb source_iso "${@}"
lb source_tar "${@}"
lb source_hdd "${@}"

# Deconfiguring chroot
lb chroot_prep remove "${CHROOT_PREP}" mode-archives-source "${@}"

Echo_message "Source stage completed"
