e264b44682
LICENSE: Add GPL-3.0 license. {{archiso,configs}/*,.editorconfig,.gitlab-ci.yml}: Add SPDX license identifier. Makefile: Add SPDX license identifier. Install the `run_archiso.sh` script as global executable `run_archiso`. Use -D and -t flags to install to install files more generically (without a previous call to install the directory). README.rst: Add README outlining the project's scope, how to build images from the profiles and how to test. AUTHORS.rst: Add list of all direct contributors to the repository. CONTRIBUTING.rst: Add basic contribution guidelines, explaining the linter and the license in use. Closes #7 Closes #3
46 lines
1.3 KiB
Bash
46 lines
1.3 KiB
Bash
#!/bin/ash
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
run_hook () {
|
|
# shellcheck disable=SC2154
|
|
# defined via initcpio's parse_cmdline()
|
|
[ -n "${img_label}" ] && img_dev="/dev/disk/by-label/${img_label}"
|
|
[ -z "${img_flags}" ] && img_flags="defaults"
|
|
# shellcheck disable=SC2154
|
|
# defined via initcpio's parse_cmdline()
|
|
if [ -n "${img_dev}" ] && [ -n "${img_loop}" ]; then
|
|
export mount_handler="archiso_loop_mount_handler"
|
|
fi
|
|
}
|
|
|
|
archiso_loop_mount_handler () {
|
|
newroot="${1}"
|
|
|
|
local _dev_loop
|
|
|
|
msg ":: Setup a loop device from ${img_loop} located at device ${img_dev}"
|
|
_mnt_dev "${img_dev}" "/run/archiso/img_dev" "-r" "${img_flags}"
|
|
# shellcheck disable=SC2154
|
|
# defined via initcpio's parse_cmdline()
|
|
if [ "${copytoram}" != "y" ]; then
|
|
readlink -f "${img_dev}" >> /run/archiso/used_block_devices
|
|
fi
|
|
|
|
if _dev_loop=$(losetup --find --show --read-only "/run/archiso/img_dev/${img_loop}"); then
|
|
export archisodevice="${_dev_loop}"
|
|
else
|
|
echo "ERROR: Setting loopback device for file '/run/archiso/img_dev/${img_loop}'"
|
|
launch_interactive_shell
|
|
fi
|
|
|
|
archiso_mount_handler "${newroot}"
|
|
|
|
if [ "${copytoram}" = "y" ]; then
|
|
losetup -d "${_dev_loop}" 2>/dev/null
|
|
umount /run/archiso/img_dev
|
|
fi
|
|
}
|
|
|
|
# vim: set ft=sh:
|