summaryrefslogtreecommitdiffstats
path: root/hooks/net
diff options
context:
space:
mode:
authorThomas Bächler <thomas@archlinux.org>2010-02-11 19:31:31 +0100
committerThomas Bächler <thomas@archlinux.org>2010-02-11 19:31:31 +0100
commit0d755f3b5f96e9cf229c523cebcfb8c2379c1fd2 (patch)
tree31768b40897ce1d9ac3c2b22c1d8fcc89b6ecd23 /hooks/net
parent1a91e4fa8e2d9823082843e98021c3345f82f072 (diff)
parentd67250f427937cb4b6f75b27d47d35302bd9890b (diff)
downloadmkinitcpio-0d755f3b5f96e9cf229c523cebcfb8c2379c1fd2.tar.gz
mkinitcpio-0d755f3b5f96e9cf229c523cebcfb8c2379c1fd2.tar.xz
Merge branch 'kill-klibc'
Conflicts: Makefile
Diffstat (limited to 'hooks/net')
-rw-r--r--hooks/net72
1 files changed, 72 insertions, 0 deletions
diff --git a/hooks/net b/hooks/net
new file mode 100644
index 0000000..9b97e39
--- /dev/null
+++ b/hooks/net
@@ -0,0 +1,72 @@
+# vim: set ft=sh:
+run_hook ()
+{
+ local line i address rootserver rootpath
+
+ : > /ip_opts
+
+ if [ -n "${ip}" ]; then
+ # setup network and save some values
+ ipconfig "${ip}" | while read line; do
+ # echo ":: ${line}"
+ if [ "${line#"IP-Config:"}" != "${line}" ]; then
+ continue
+ fi
+ line="$(echo ${line} | sed -e 's/ :/:/g;s/: /=/g')"
+ for i in ${line}; do
+ case "${i}" in
+ address=*)
+ echo "${i}" >> /ip_opts
+ ;;
+ netmask=*)
+ echo "${i}" >> /ip_opts
+ ;;
+ gateway=*)
+ echo "${i}" >> /ip_opts
+ ;;
+ dns0=*)
+ echo "${i}" >> /ip_opts
+ ;;
+ dns1=*)
+ echo "${i}" >> /ip_opts
+ ;;
+ rootserver=*)
+ echo "${i}" >> /ip_opts
+ ;;
+ rootpath=*)
+ echo "${i}" >> /ip_opts
+ ;;
+ esac
+ done
+ done
+
+ . /ip_opts
+
+ echo "IP-Config: ${address}/${netmask}"
+ echo "IP-Config: gw: ${gateway} dns0: ${dns0} dns1: ${dns1}"
+
+ # calculate nfs_server, nfs_path and nfs_option for later nfs mount
+ if [ "${root}" = "/dev/nfs" -o "${nfsroot}" != "" ]; then
+ # default rootpath
+ if [ "${rootpath}" = "" ]; then
+ rootpath="/tftpboot/${address}"
+ fi
+
+ # parse nfsroot
+ line="${nfsroot}"
+ nfs_server="${line%%:*}"
+ [ "${nfs_server}" = "${line}" ] && nfs_server="${rootserver}"
+ line="${line#*:}"
+ nfs_path="${line%%,*}"
+ line="${line#"${nfs_path}"}"
+ [ "${nfs_path}" = "" ] && nfs_path="${rootpath}"
+ nfs_option="${line#","}"
+
+ # ensure root and filesystem type are set proper for nfs boot
+ root="/dev/nfs"
+ rootfstype="nfs"
+
+ echo "NFS-root: ${nfs_server}:${nfs_path}"
+ fi
+ fi
+}