summaryrefslogtreecommitdiff
path: root/archiso/initcpio/hooks/archiso_pxe_common
diff options
context:
space:
mode:
authorDavid Runge <dvzrv@archlinux.org>2020-07-11 18:13:20 +0200
committerDavid Runge <dvzrv@archlinux.org>2020-07-11 20:58:01 +0200
commite2032db4e74c66d3f8bcba97497ccb5fff88df4b (patch)
tree6b1fa957e952916ed34ff101cd277c11c3a9437b /archiso/initcpio/hooks/archiso_pxe_common
parent550aca712432c6708fc48db5e9a8aaba9ef1e0c1 (diff)
downloadarchiso32-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_common')
-rw-r--r--archiso/initcpio/hooks/archiso_pxe_common57
1 files changed, 30 insertions, 27 deletions
diff --git a/archiso/initcpio/hooks/archiso_pxe_common b/archiso/initcpio/hooks/archiso_pxe_common
index 2380ca3..e31903e 100644
--- a/archiso/initcpio/hooks/archiso_pxe_common
+++ b/archiso/initcpio/hooks/archiso_pxe_common
@@ -1,55 +1,55 @@
-# vim: set ft=sh:
+#!/bin/ash
run_hook () {
# Do *not* declare 'bootif_dev' local! We need it in run_latehook().
local i net_mac bootif_mac
+ local DNSDOMAIN HOSTNAME IPV4DNS0 IPV4DNS1 ROOTSERVER
# These variables will be parsed from /tmp/net-*.conf generated by ipconfig
- local DEVICE
- local IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1
- local HOSTNAME DNSDOMAIN NISDOMAIN ROOTSERVER ROOTPATH
- local filename
- # /tmp/net-*.conf
+ # shellcheck disable=SC2034
+ local DEVICE IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY NISDOMAIN ROOTPATH filename
- if [[ -n "${ip}" ]]; then
- if [[ -n "${BOOTIF}" ]]; then
- bootif_mac=${BOOTIF#01-}
- bootif_mac=${bootif_mac//-/:}
+ if [ -n "${ip}" ]; then
+ if [ -n "${BOOTIF}" ]; then
+ bootif_mac="${BOOTIF#01-}"
+ # shellcheck disable=SC2169 # ash supports bash-like string replacment
+ bootif_mac="${bootif_mac//-/:}"
for i in /sys/class/net/*/address; do
- read net_mac < ${i}
- if [[ "${bootif_mac}" == "${net_mac}" ]]; then
+ read -r net_mac < "${i}"
+ if [ "${bootif_mac}" = "${net_mac}" ]; then
bootif_dev=${i#/sys/class/net/}
bootif_dev=${bootif_dev%/address}
break
fi
done
- if [[ "${ip}" == "dhcp" ]]; then
+ if [ "${ip}" = "dhcp" ]; then
ip=":::::${bootif_dev}:dhcp"
- else
+ else
ip="${ip}::${bootif_dev}"
fi
fi
# setup network and save some values
if ! ipconfig -t 20 "ip=${ip}"; then
- echo "ERROR; Failed to configure network"
- echo " Falling back to interactive prompt"
- echo " You can try to fix the problem manually, log out when you are finished"
- launch_interactive_shell
+ echo "ERROR; Failed to configure network"
+ 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
+ # shellcheck disable=SC1090 # ipconfig generates these files
. /tmp/net-*.conf
- pxeserver=${ROOTSERVER}
+ export pxeserver="${ROOTSERVER}"
# setup DNS resolver
- if [[ "${IPV4DNS0}" != "0.0.0.0" ]]; then
+ if [ "${IPV4DNS0}" != "0.0.0.0" ]; then
echo "# added by archiso_pxe_common hook" > /etc/resolv.conf
echo "nameserver ${IPV4DNS0}" >> /etc/resolv.conf
fi
- if [[ "${IPV4DNS1}" != "0.0.0.0" ]]; then
+ if [ "${IPV4DNS1}" != "0.0.0.0" ]; then
echo "nameserver ${IPV4DNS1}" >> /etc/resolv.conf
fi
- if [[ -n "${DNSDOMAIN}" ]]; then
+ if [ -n "${DNSDOMAIN}" ]; then
echo "search ${DNSDOMAIN}" >> /etc/resolv.conf
echo "domain ${DNSDOMAIN}" >> /etc/resolv.conf
fi
@@ -57,16 +57,19 @@ run_hook () {
}
run_latehook () {
- if [[ -n "${ip}" ]]; then
- [[ -z "${copy_resolvconf}" ]] && copy_resolvconf="y"
+ if [ -n "${ip}" ]; then
+ [ -z "${copy_resolvconf}" ] && copy_resolvconf="y"
- if [[ "${copytoram}" == "y" ]]; then
- if [[ -n "${bootif_dev}" ]]; then
+ # shellcheck disable=SC2154 # defined via initcpio's parse_cmdline()
+ if [ "${copytoram}" = "y" ]; then
+ if [ -n "${bootif_dev}" ]; then
ip addr flush dev "${bootif_dev}"
ip link set "${bootif_dev}" down
fi
- elif [[ "${copy_resolvconf}" != "n" && -f /etc/resolv.conf ]]; then
+ elif [ "${copy_resolvconf}" != "n" ] && [ -f /etc/resolv.conf ]; then
cp /etc/resolv.conf /new_root/etc/resolv.conf
fi
fi
}
+
+# vim: set ft=sh: