diff options
Diffstat (limited to 'trunk/src/moo')
| -rw-r--r-- | trunk/src/moo/AUTHORS | 1 | ||||
| -rw-r--r-- | trunk/src/moo/README | 0 | ||||
| -rw-r--r-- | trunk/src/moo/TODO | 0 | ||||
| -rwxr-xr-x | trunk/src/moo/moo | 244 | ||||
| -rw-r--r-- | trunk/src/moo/moo.1 | 12 |
5 files changed, 0 insertions, 257 deletions
diff --git a/trunk/src/moo/AUTHORS b/trunk/src/moo/AUTHORS deleted file mode 100644 index fe436cb..0000000 --- a/trunk/src/moo/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Karl Trygve Kalleberg <karltk@gentoo.org> diff --git a/trunk/src/moo/README b/trunk/src/moo/README deleted file mode 100644 index e69de29..0000000 --- a/trunk/src/moo/README +++ /dev/null diff --git a/trunk/src/moo/TODO b/trunk/src/moo/TODO deleted file mode 100644 index e69de29..0000000 --- a/trunk/src/moo/TODO +++ /dev/null diff --git a/trunk/src/moo/moo b/trunk/src/moo/moo deleted file mode 100755 index 828df08..0000000 --- a/trunk/src/moo/moo +++ /dev/null @@ -1,244 +0,0 @@ -#! /usr/bin/env python2.2 - -import os -import sys -import time -import signal - -CONFDIR="/tmp/moo" - -class Config: - pass - -def die(code, msg): - sys.stdout.write(msg + "\n") - sys.edit(code) - -def printUsage(): - print "Usage: moo <options> [command] <command-options>\n" + \ - "Where [command] is one of:\n" + \ - "scan - scan for available networks\n" + \ - "list - list available profiles\n"+ \ - "select - select a particular profile\n" - -def scanNetworks(): - pass - -def runCmd(cmd): - if Config.verbosity > 5: - print "Executing \"" + cmd + "\"" - v = os.system(cmd) - if Config.verbosity > 5: - print "Result: " + str(v) - return v - -class ProfileHandler: - def __init__(self): - self.profiles = {} - self._loadProfiles() - def _loadProfiles(self): - for x in os.listdir(CONFDIR+"/profiles"): - if x[-1] != "~" and x[0] != ".": - self.profiles[x] = Profile(CONFDIR+"/profiles/"+x) - def listProfiles(self,detailed=0): - for x in self.profiles.keys(): - if detailed: - print x + ":" - self.profiles[x].dump() - else: - print x + " [" + self.profiles[x].description + "]" - def getProfileNames(self): - return self.profiles.keys() - def getProfile(self,name): - return self.profiles[name] - - -class Profile: - def __init__(self, filename): - self._loadFromFile(filename) - def _loadFromFile(self,filename): - self.desc = "" - self.ifaceName = "" - self.ip = "" - self.broadcast = "" - self.gateway = "" - self.exclusive = "no" - self.netmask = "" - self.nameserver = "" - - ins = open(filename) - for s in ins.readlines(): - for x in ["description","ifaceName","ip","broadcast", - "gateway","exclusive","nameserver","wepkey"]: - if s.find(x+"=") == 0: - val=s.replace(x+"=","").strip() - self.__dict__[x] = val - def dump(self): - print "description = " + self.description + "\n" + \ - "iface = " + self.ifaceName + "\n" + \ - "ip = " + self.ip + "\n" + \ - "broadcast = " + self.broadcast + "\n" + \ - "gateway = " + self.gateway + "\n" + \ - "gateway = " + self.nameserver + "\n" + \ - "exclusive = " + self.exclusive + "\n" - -class Interface: - def __init__(self, name): - self.name = name - self.netmask = "" - self.broadcast = "" - self.ip = "" - self.gateway = "" - self.nameserver = "" - self.wepkey = "" - self._loadIPV4Info() - def _loadIPV4Info(self): - pass - def getNameserver(self): - return self.nameserver - def getNetmask(self): - return self.netmask - def getName(self): - return self.name - def getBroadcast(self): - return self.broadcast - def getWEPKey(self): - return self.wepkey - def getGateway(self): - return self.gateway - def setNameserver(self,nameserver): - self.nameserver = nameserver - def setIP(self, ip): - self.ip = ip - def setWEPKey(self,key): - self.wepkey = key - def setGateway(self,gw): - self.gateway = gw - def setBroadcast(self,broadcast): - self.broadcast = broadcast - def setNetmask(self,netmask): - self.netmask = netmask - def runDHCP(self): - runCmd("dhcpcd " + self.name) - def down(self): - runCmd("ifconfig " + self.name + " down") - pidFile = "/var/run/dhcpcd-" + self.name + ".pid" - if os.path.exists(pidFile): - ins = open(pidFile) - pid = int(ins.readline()) - os.kill(pid,signal.SIGTERM) - time.sleep(1) - def up(self): - options = "" - - if self.wepkey: - if runCmd("iwconfig eth1 key " + self.wepkey): - die(4, "Failed to set WEP key for " + self.name) - - if self.ip: - options += self.ip + " " - if self.broadcast: - options += "broadcast " + self.broadcast + " " - if self.netmask: - options += "netmask " + self.netmask + " " - - if runCmd("ifconfig " + self.name + " " + options + " up"): - die(2, "Failed to bring up " + self.name) - - if self.gateway: - if runCmd("route add default gw " + self.gateway + " " + self.name): - die(3, "Failed to set default gateway for " + self.name) - - if self.nameserver: - if Config.verbosity > 5: - print("Using nameserver " + self.nameserver) - try: - ous = open("/etc/resolv.conf","w") - ous.write("nameserver " + self.nameserver) - ous.close() - except OSError: - die("Failed to set nameserver") - if Config.verbosity > 3: - print "Brough interface " + self.name + " up" - -class InterfaceHandler: - def __init__(self): - self.ifaces = {} - self._loadAllInterfaces() - def _loadAllInterfaces(self): - ins=open("/proc/net/dev") - for line in ins.readlines(): - tokens = line.split(":") - if len(tokens) > 1: - ifaceName = tokens[0].strip() - iface = Interface(ifaceName) - self.ifaces[ifaceName] = iface - def getInterface(self,ifaceName): - return self.ifaces[ifaceName] - def downAll(self): - for x in self.ifaces.values(): - if x.getName() != "lo": - x.down() - -class Moo: - def __init__(self): - self.profileHandler = ProfileHandler() - self.ifaceHandler = InterfaceHandler() - - def selectProfile(self,profile): - prof = self.profileHandler.getProfile(profile) - - if prof.exclusive == "yes": - self.ifaceHandler.downAll() - - iface = self.ifaceHandler.getInterface(prof.ifaceName) - - if prof.ip == "dhcp": - iface.runDHCP() - else: - iface.setIP(prof.ip) - iface.setBroadcast(prof.broadcast) - iface.setNetmask(prof.netmask) - iface.setGateway(prof.gateway) - iface.setNameserver(prof.nameserver) - iface.up() - - def listProfiles(self,detailed=0): - self.profileHandler.listProfiles(detailed) - -def initConfig(): - Config.verbosity = 3 - -def main(): - - initConfig() - - if len(sys.argv) < 2: - printUsage() - sys.exit(1) - - moo = Moo() - - for i in xrange(len(sys.argv)): - if sys.argv[i] == "list": - detailed = 0 - for x in sys.argv[i:]: - if x == "--detailed": - detailed = 1 - moo.listProfiles(detailed) - - elif sys.argv[i] == "select": - moo.selectProfile(sys.argv[2]) - -if __name__ == "__main__": - main() - - -# TODO -# - automatically create profile -# - specify wireless network name -# - specify wep key -# - specify access point -# - specify pre_run/post_run commands -# - with parameters -# diff --git a/trunk/src/moo/moo.1 b/trunk/src/moo/moo.1 deleted file mode 100644 index 534aa0c..0000000 --- a/trunk/src/moo/moo.1 +++ /dev/null @@ -1,12 +0,0 @@ -.TH moo "1" "Nov 2003" "gentoolkit" -.SH NAME -moo \- Gentoo: Configuration Update Utility -.SH SYNOPSIS -.B moo -.SH BUGS -This tool does not yet have a man page. Feel free to submit a bug about it to -http://bugs.gentoo.org -.SH AUTHORS -This informative man page was written by Karl Trygve Kalleberg -<karltk@gentoo.org>. - |
