summaryrefslogtreecommitdiff
path: root/archiso/initcpio/hooks/archiso_pxe_nfs
diff options
context:
space:
mode:
Diffstat (limited to 'archiso/initcpio/hooks/archiso_pxe_nfs')
-rw-r--r--archiso/initcpio/hooks/archiso_pxe_nfs30
1 files changed, 21 insertions, 9 deletions
diff --git a/archiso/initcpio/hooks/archiso_pxe_nfs b/archiso/initcpio/hooks/archiso_pxe_nfs
index 67874ec..be1e4c3 100644
--- a/archiso/initcpio/hooks/archiso_pxe_nfs
+++ b/archiso/initcpio/hooks/archiso_pxe_nfs
@@ -1,30 +1,42 @@
-# vim: set ft=sh:
+#!/bin/ash
run_hook() {
- if [[ -n "${ip}" && -n "${archiso_nfs_srv}" ]]; then
+ # shellcheck disable=SC2154
+ # defined via initcpio's parse_cmdline()
+ if [ -n "${ip}" ] && [ -n "${archiso_nfs_srv}" ]; then
- archiso_nfs_srv=$(eval echo ${archiso_nfs_srv})
- [[ -n "${archiso_nfs_opt}" ]] && archiso_nfs_opt="-o ${archiso_nfs_opt}"
+ archiso_nfs_srv=$(eval echo "${archiso_nfs_srv}")
- mount_handler="archiso_nfs_mount_handler"
+ export mount_handler="archiso_nfs_mount_handler"
fi
}
archiso_nfs_mount_handler() {
+ local mount_status
newroot="${1}"
mkdir -p "/run/archiso/bootmnt"
msg ":: Mounting '${archiso_nfs_srv}'"
- # Do not put "${archiso_nfs_opt}" nfsmount fails!
- if ! nfsmount ${archiso_nfs_opt} "${archiso_nfs_srv}" "/run/archiso/bootmnt"; then
+ # shellcheck disable=SC2154
+ # defined via initcpio's parse_cmdline()
+ if [ -n "${archiso_nfs_opt}" ]; then
+ nfsmount -o "${archiso_nfs_opt}" "${archiso_nfs_srv}" "/run/archiso/bootmnt"
+ mount_status=$?
+ else
+ nfsmount "${archiso_nfs_srv}" "/run/archiso/bootmnt"
+ mount_status=$?
+ fi
+ if [ $mount_status -gt 0 ]; then
echo "ERROR: Mounting '${archiso_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
- archiso_mount_handler ${newroot}
+ archiso_mount_handler "${newroot}"
}
+
+# vim: set ft=sh: