Package: netenv
Version: 0.94.3-17
Severity: normal

Alberto Federico Turelli <[EMAIL PROTECTED]> wrote:

> Hi Frank!
> First of all, thanks for maintaining the netenv Debian package, I use it
> extensively because I use my laptop in many different network
> environments.
> I use the netenv_setup script installed
> in /usr/share/doc/netenv/examples/netenv_setup_debian_example, but I had
> to tweak it a bit to make it:

Thank you for the patch.  Unfortunately, netenv is currently in
low-maintenance mode since I don't have much time left.  I should have
sent a Request for Adoption of the package long ago.

Therefore I'm forwarding this to the bugtracking system, so that it
won't be forgotten if someone else works on the package.

> 1. use an interface different from eth0: I added the NETENV_IFACE
> parameter (defaulting to "eth0")
>
> 2. set some wireless-related parameter: I made the script recognize
> every wireless-FOO parameter and put it into /etc/network/interfaces
>
> 3. use "up" and "down" settings into /etc/network/interfaces, so it's
> easy to have static routes added to the networking environment
>
> I hope this can help extending the Debian example script, and/or making
> it the default in the Debian package.
>
> Have a nice day,
>
> Alberto
>
> [EMAIL PROTECTED] - Debian testing/unstable - kernel 2.6.17.7-at2

Regards, Frank

#!/bin/sh
#******************************************************************
#ident /etc/netenv/netenv_setup Time-stamp: <03/03/31 08:47:21 bav>
#******************************************************************
#                            Gerd Bavendiek  [EMAIL PROTECTED]  03-03-11
#
# If there is a variable NETENV_SCRIPT pointing to this executable
# file, netenv will source this script during boot.
#
# This is an Debian-only example. It creates an
# /etc/network/interfaces in a hopefully safe manner.
# This way non PCMCIA-NIC-users can use netenv on Debian without
# further configuration steps.
#------------------------------------------------------------------
print_action() 
{
   echo -e netenv: $* " ... \c"  
}
print_status() 
{
   if [ $? -eq 0 ]; then
      echo done
   else
      echo failed
   fi
}

if ! grep Debian /etc/issue >/dev/null 2>&1; then
   print_action Doing nothing, as this is obviously no Debian
   echo
   exit 0
fi

# Save /etc/network/interfaces if it has not been created by netenv
if grep netenv /etc/network/interfaces >/dev/null 2>&1; then
   cp -p /etc/network/interfaces /etc/network/interfaces.pre-netenv
   print_action /etc/network/interfaces was backuped as 
/etc/network/interfaces.pre-netenv
fi

print_action creating new /etc/network/interfaces
(
   if [ -z "$NETENV_IFACE" ]; then
      NETENV_IFACE=eth0
   fi
   echo "# /etc/network/interfaces autogenerated by netenv "`date`
   echo "# old /etc/network/interfaces backup as 
/etc/network/interfaces.pre-netenv"
   echo auto lo
   echo iface lo inet loopback
   echo auto $NETENV_IFACE
   if [ "$BOOTPROTO" = "dhcp" ]; then
      echo iface $NETENV_IFACE inet dhcp
   else
      echo iface $NETENV_IFACE inet static
      echo -e "\taddress $IPADDR"
      echo -e "\tnetmask $NETMASK"
      echo -e "\tnetwork $NETWORK"
      echo -e "\tbroadcast $BROADCAST"
      echo -e "\tgateway $GATEWAY"
   fi
   if [ ! -z "$UP" ]; then echo -e "\tup $UP"; fi
   if [ ! -z "$DOWN" ]; then echo -e "\tdown $DOWN"; fi

   if [ ! -z "$WIRELESS_ESSID" ]; then echo -e "\twireless-essid 
$WIRELESS_ESSID"; fi
   if [ ! -z "$WIRELESS_NWID" ]; then echo -e "\twireless-nwid $WIRELESS_NWID"; 
fi
   if [ ! -z "$WIRELESS_FREQ" ]; then echo -e "\twireless-freq $WIRELESS_FREQ"; 
fi
   if [ ! -z "$WIRELESS_CHANNEL" ]; then echo -e "\twireless-channel 
$WIRELESS_CHANNEL"; fi
   if [ ! -z "$WIRELESS_SENS" ]; then echo -e "\twireless-sens $WIRELESS_SENS"; 
fi
   if [ ! -z "$WIRELESS_MODE" ]; then echo -e "\twireless-mode $WIRELESS_MODE"; 
fi
   if [ ! -z "$WIRELESS_AP" ]; then echo -e "\twireless-ap $WIRELESS_AP"; fi
   if [ ! -z "$WIRELESS_NICK" ]; then echo -e "\twireless-nick $WIRELESS_NICK"; 
fi
   if [ ! -z "$WIRELESS_RATE" ]; then echo -e "\twireless-rate $WIRELESS_RATE"; 
fi
   if [ ! -z "$WIRELESS_RTS" ]; then echo -e "\twireless-rts $WIRELESS_RTS"; fi
   if [ ! -z "$WIRELESS_FRAG" ]; then echo -e "\twireless-frag $WIRELESS_FRAG"; 
fi
   if [ ! -z "$WIRELESS_TXPOWER" ]; then echo -e "\twireless-txpower 
$WIRELESS_TXPOWER"; fi
   if [ ! -z "$WIRELESS_ENC" ]; then echo -e "\twireless-enc $WIRELESS_ENC"; fi
   if [ ! -z "$WIRELESS_KEY" ]; then echo -e "\twireless-key $WIRELESS_KEY"; fi
   if [ ! -z "$WIRELESS_KEYMODE" ]; then echo -e "\twireless-keymode 
$WIRELESS_KEYMODE"; fi
   if [ ! -z "$WIRELESS_POWER" ]; then echo -e "\twireless-power 
$WIRELESS_POWER"; fi
   if [ ! -z "$WIRELESS_RETRY" ]; then echo -e "\twireless-retry 
$WIRELESS_RETRY"; fi
) > /etc/network/interfaces
print_status done

#---   Set up /etc/resolv.conf   ----------------------------------
if [ ! -z "$DNS_1" ]; then
    rm -f /etc/resolv.conf
    (
    echo "# resolv.conf autogenerated by netenv "`date`
    if [ ! -z "$DOMAIN" ]; then echo domain $DOMAIN; fi
    if [ ! -z "$SEARCH" ]; then echo search $SEARCH; fi
    echo nameserver $DNS_1
    if [ ! -z "$DNS_2" ]; then echo nameserver $DNS_2; fi
    if [ ! -z "$DNS_3" ]; then echo nameserver $DNS_3; fi
    ) > /etc/resolv.conf.netenv
    chmod 644 /etc/resolv.conf.netenv
    print_action setting up new /etc/resolv.conf
    ln -s /etc/resolv.conf.netenv /etc/resolv.conf
    print_status
fi

#---   Edit /etc/hosts   -------------------------------------------
NETENV_HOSTS_FILE=/etc/netenv/$(echo $1 |cut -d_ -f1)-hosts
if [ -r $NETENV_HOSTS_FILE ]; then
  export NETENV_HOST_ENTRIES="$(cat $NETENV_HOSTS_FILE |tr '\n' ':')"
fi
if [ "$BOOTPROTO" = "dhcp" ]; then
  export NETENV_HOST_ENTRIES="127.0.0.1 $NODE:$NETENV_HOST_ENTRIES"
else
  if [ ! -z "$DOMAIN" ]; then
    NETENV_DOMAIN=$DOMAIN
  elif [ ! -z "$SEARCH" ]; then
    NETENV_DOMAIN=$SEARCH
  fi
  if [ -z "$NETENV_DOMAIN" ]; then
    export NETENV_HOST_ENTRIES="$IPADDR $NODE:$NETENV_HOST_ENTRIES"
  else
    export NETENV_HOST_ENTRIES="$IPADDR $NODE.$NETENV_DOMAIN 
$NODE:$NETENV_HOST_ENTRIES"
  fi
fi
if [ -n "$NETENV_HOST_ENTRIES" ]; then
   if egrep '^# netenv hosts begin$' /etc/hosts > /dev/null 2>&1; then
      (
      awk 'NR==1,/^# netenv hosts begin$/' /etc/hosts
      echo $NETENV_HOST_ENTRIES | awk -F':' '{ for ( j=1; j<=NF; j++ ) print $j 
}'
      awk '/^# netenv hosts end$/,/*/' /etc/hosts
      ) > /etc/hosts.netenv
      print_action modifying /etc/hosts
      mv -f /etc/hosts.netenv /etc/hosts
      chmod 644 /etc/hosts
      print_status
   fi
else
   if egrep '^# netenv hosts begin$' /etc/hosts > /dev/null 2>&1; then
      (
      awk 'NR==1,/^# netenv hosts begin$/' /etc/hosts
      awk '/^# netenv hosts end$/,/*/' /etc/hosts
      ) > /etc/hosts.netenv
      print_action cleaning up /etc/hosts
      mv -f /etc/hosts.netenv /etc/hosts
      chmod 644 /etc/hosts
      print_status
   fi
fi



-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (99, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.16-2-686
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)

Versions of packages netenv depends on:
ii  coreutils                 5.2.1-2        The GNU core utilities
ii  debconf [debconf-2.0]     1.4.30.13      Debian configuration management sy
ii  dialog                    1.0-20050306-1 Displays user-friendly dialog boxe

-- 
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX/TeXLive)

Reply via email to