diff options
author | David Runge <dvzrv@archlinux.org> | 2020-07-11 18:13:20 +0200 |
---|---|---|
committer | David Runge <dvzrv@archlinux.org> | 2020-07-11 20:58:01 +0200 |
commit | e2032db4e74c66d3f8bcba97497ccb5fff88df4b (patch) | |
tree | 6b1fa957e952916ed34ff101cd277c11c3a9437b /archiso/initcpio/hooks/archiso_pxe_nfs | |
parent | 550aca712432c6708fc48db5e9a8aaba9ef1e0c1 (diff) | |
download | archiso32-e2032db4e74c66d3f8bcba97497ccb5fff88df4b.tar.xz |
Adding linting for initcpio scripts
archiso/initcpio/install/*:
Setting bash shebang for all scripts and making them comform with shellcheck.
archiso/initcpio/{hooks,script}/*:
Setting ash shebang for all scripts and making them comform with shellcheck (for dash, as shellcheck has no ash specific
ruleset). Essentially the ash based scripts should be POSIX compliant as much as possible to have an easier time
writing, debugging and maintaining them.
Ensuring that variables are not treated as options and introducing variable quoting.
.gitlab-ci.yml:
Integrating shellcheck for initcpio scripts.
Closes #32
Diffstat (limited to 'archiso/initcpio/hooks/archiso_pxe_nfs')
-rw-r--r-- | archiso/initcpio/hooks/archiso_pxe_nfs | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/archiso/initcpio/hooks/archiso_pxe_nfs b/archiso/initcpio/hooks/archiso_pxe_nfs index 67874ec..406541b 100644 --- a/archiso/initcpio/hooks/archiso_pxe_nfs +++ b/archiso/initcpio/hooks/archiso_pxe_nfs @@ -1,30 +1,40 @@ -# 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: |