diff options
Diffstat (limited to 'parabolaiso/initcpio/hooks/parabolaiso_pxe_nfs')
-rw-r--r-- | parabolaiso/initcpio/hooks/parabolaiso_pxe_nfs | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/parabolaiso/initcpio/hooks/parabolaiso_pxe_nfs b/parabolaiso/initcpio/hooks/parabolaiso_pxe_nfs index 6eba5b7..815e33b 100644 --- a/parabolaiso/initcpio/hooks/parabolaiso_pxe_nfs +++ b/parabolaiso/initcpio/hooks/parabolaiso_pxe_nfs @@ -1,30 +1,44 @@ -# vim: set ft=sh: +#!/bin/ash +# +# SPDX-License-Identifier: GPL-3.0-or-later run_hook() { - if [[ -n "${ip}" && -n "${parabolaiso_nfs_srv}" ]]; then + # shellcheck disable=SC2154 + # defined via initcpio's parse_cmdline() + if [ -n "${ip}" ] && [ -n "${parabolaiso_nfs_srv}" ]; then - parabolaiso_nfs_srv=$(eval echo ${parabolaiso_nfs_srv}) - [[ -n "${parabolaiso_nfs_opt}" ]] && parabolaiso_nfs_opt="-o ${parabolaiso_nfs_opt}" + parabolaiso_nfs_srv=$(eval echo "${parabolaiso_nfs_srv}") - mount_handler="parabolaiso_nfs_mount_handler" + export mount_handler="parabolaiso_nfs_mount_handler" fi } parabolaiso_nfs_mount_handler() { + local mount_status newroot="${1}" mkdir -p "/run/parabolaiso/bootmnt" msg ":: Mounting '${parabolaiso_nfs_srv}'" - # Do not put "${parabolaiso_nfs_opt}" nfsmount fails! - if ! nfsmount ${parabolaiso_nfs_opt} "${parabolaiso_nfs_srv}" "/run/parabolaiso/bootmnt"; then + # shellcheck disable=SC2154 + # defined via initcpio's parse_cmdline() + if [ -n "${parabolaiso_nfs_opt}" ]; then + nfsmount -o "${parabolaiso_nfs_opt}" "${parabolaiso_nfs_srv}" "/run/parabolaiso/bootmnt" + mount_status=$? + else + nfsmount "${parabolaiso_nfs_srv}" "/run/parabolaiso/bootmnt" + mount_status=$? + fi + if [ $mount_status -gt 0 ]; then echo "ERROR: Mounting '${parabolaiso_nfs_srv}'" echo " Falling back to interactive prompt" echo " You can try to fix the problem manually, log out when you are finished" launch_interactive_shell fi - if [[ "${copytoram}" != "n" ]]; then + if [ "${copytoram}" != "n" ]; then copytoram="y" fi - parabolaiso_mount_handler ${newroot} + parabolaiso_mount_handler "${newroot}" } + +# vim: set ft=sh: |