diff options
Diffstat (limited to 'helpers/lh_source_download')
| -rwxr-xr-x | helpers/lh_source_download | 67 | 
1 files changed, 67 insertions, 0 deletions
| diff --git a/helpers/lh_source_download b/helpers/lh_source_download new file mode 100755 index 0000000..0684d87 --- /dev/null +++ b/helpers/lh_source_download @@ -0,0 +1,67 @@ +#!/bin/sh + +# lh_source_download(1) - download sources + +set -e + +# Source common functions +for FUNCTION in /usr/share/live-helper/functions/*.sh +do +	. ${FUNCTION} +done + +# Reading configuration files +Read_conffile config/common +Read_conffile config/image +Set_defaults + +if [ "${LIVE_SOURCE}" = "enabled" ] +then +	# Requiring stage file +	Require_stagefile "${LIVE_ROOT}"/.stage/bootstrap + +	# Checking lock file +	Check_lockfile "${LIVE_ROOT}"/.lock + +	# Creating lock file +	Create_lockfile "${LIVE_ROOT}"/.lock + +	# Checking stage file +	Check_stagefile "${LIVE_ROOT}"/.stage/source_download + +	# Remove old sources +	if [ "${LIVE_ROOT}"/source ] +	then +		rm -rf "${LIVE_ROOT}"/source +	fi + +	# Download sources +	Chroot "dpkg --get-selections" | awk '{ print $1 }' > "${LIVE_CHROOT}"/root/dpkg-selection.txt +	Chroot "xargs --arg-file=/root/dpkg-selection.txt apt-get source --download-only" +	rm -f "${LIVE_CHROOT}"/root/dpkg-selection.txt + +	# Sort sources +	for DSC in "${LIVE_CHROOT}"/*.dsc +	do +		SOURCE="`awk '/Source:/ { print $2; }' ${DSC}`" + +		if [ "`echo ${SOURCE} | cut -b 1-3`" == "lib" ] +		then +			LETTER="`echo ${SOURCE} | cut -b 1-4`" +		else +			LETTER="`echo ${SOURCE} | cut -b 1`" +		fi + +		# Install directory +		install -d -m 0755 "${LIVE_ROOT}"/source/"${LETTER}"/"${SOURCE}" + +		# Move files +		mv "${LIVE_CHROOT}"/"${SOURCE}"_* "${LIVE_ROOT}"/source/"${LETTER}"/"${SOURCE}" +	done + +	# Copy system configuration +	cp -a "${LIVE_ROOT}"/config "${LIVE_ROOT}"/source + +	# Creating stage file +	Create_stagefile "${LIVE_ROOT}"/.stage/source_download +fi | 
