From efee4ebf43e376a7cd8b8abcef0c70aa90427bb4 Mon Sep 17 00:00:00 2001
From: davidovski <david@davidovski.xyz>
Date: Tue, 1 Mar 2022 22:01:26 +0000
Subject: initial commit

---
 ifup | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 136 insertions(+)
 create mode 100755 ifup

(limited to 'ifup')

diff --git a/ifup b/ifup
new file mode 100755
index 0000000..7466150
--- /dev/null
+++ b/ifup
@@ -0,0 +1,136 @@
+#!/bin/sh
+########################################################################
+# Begin /sbin/ifup
+#
+# Description : Interface Up
+#
+# Authors     : Nathan Coulson - nathan@linuxfromscratch.org
+#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
+# Update      : Bruce Dubbs - bdubbs@linuxfromscratch.org
+#
+# Version     : LFS 7.2
+#
+# Notes       : The IFCONFIG variable is passed to the SERVICE script
+#               in the /lib/services directory, to indicate what file the
+#               service should source to get interface specifications.
+#
+########################################################################
+
+up()
+{
+  if ip link show $1 > /dev/null 2>&1; then
+     link_status=`ip link show $1`
+
+     if [ -n "${link_status}" ]; then
+        if ! echo "${link_status}" | grep -q UP; then
+           ip link set $1 up
+        fi
+     fi
+
+  else
+     echo "Interface ${IFACE} doesn't exist."
+     exit 1
+  fi
+}
+
+RELEASE="7.2"
+
+USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
+VERSTR="LFS ifup, version ${RELEASE}"
+
+while [ $# -gt 0 ]; do
+   case "$1" in
+      --help | -h)     help="y"; break ;;
+
+      --version | -V)  echo "${VERSTR}"; exit 0 ;;
+   
+      -*)              echo "ifup: ${1}: invalid option" >&2
+                       echo "${USAGE}" >& 2
+                       exit 2 ;;
+                       
+      *)               break ;;
+   esac
+done
+
+if [ -n "$help" ]; then
+   echo "${VERSTR}"
+   echo "${USAGE}"
+   echo
+   cat << HERE_EOF
+ifup is used to bring up a network interface.  The interface
+parameter, e.g. eth0 or eth0:2, must match the trailing part of the
+interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
+
+HERE_EOF
+   exit 0
+fi
+
+file=/etc/sysconfig/ifconfig.${1}
+
+# Skip backup files
+[ "${file}" = "${file%""~""}" ] || exit 0
+
+#. /lib/lsb/init-functions
+
+echo "Bringing up the ${1} interface... "
+
+if [ ! -r "${file}" ]; then
+   echo "${file} is missing or cannot be accessed." 
+   exit 1
+fi
+
+. $file
+
+if [ "$IFACE" = "" ]; then
+   echo "${file} does not define an interface [IFACE]."
+   exit 1
+fi
+
+# Do not process this service if started by boot, and ONBOOT
+# is not set to yes
+if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
+   echo "skipped"
+   exit 0
+fi
+
+for S in ${SERVICE}; do
+  if [ ! -x "/lib/services/${S}" ]; then
+    echo "Unable to process ${file}.  Either " 
+    echo "${MSG}the SERVICE '${S} was not present "
+    echo "${MSG}or cannot be executed."
+    echo "$MSG"
+    exit 1
+  fi
+done
+
+# Create/configure the interface
+for S in ${SERVICE}; do 
+  IFCONFIG=${file} /lib/services/${S} ${IFACE} up
+done
+
+# Bring up the interface and any components
+for I in $IFACE $INTERFACE_COMPONENTS; do up $I; done
+
+# Set MTU if requested. Check if MTU has a "good" value.
+if test -n "${MTU}"; then
+   if [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -ge 68 ]] ; then
+      for I in $IFACE $INTERFACE_COMPONENTS; do 
+         ip link set dev $I mtu $MTU; 
+      done
+   else
+      echo "Invalid MTU $MTU"
+   fi
+fi 
+
+# Set the route default gateway if requested
+if [ -n "${GATEWAY}" ]; then
+   if ip route | grep -q default; then
+      echo "Gateway already setup; skipping."
+   else
+      echo "Setting up default gateway..."
+      ip route add default via ${GATEWAY} dev ${IFACE}
+      #evaluate_retval
+   fi
+fi
+
+# End /sbin/ifup
-- 
cgit v1.2.1