#!/usr/bin/python
# -*- coding: latin-1 -*-
# INTEL CONFIDENTIAL
# Copyright 2007 Intel Corporation All Rights Reserved.
#
# The source code contained or described herein and all documents related to the
# source code (“Material”) are owned by Intel Corporation or its suppliers or
# licensors. Title to the Material remains with Intel Corporation or its
# suppliers and licensors. The Material may contain trade secrets and
# proprietary and confidential information of Intel Corporation and its
# suppliers and licensors, and is protected by worldwide copyright and trade
# secret laws and treaty provisions. No part of the Material may be used,
# copied, reproduced, modified, published, uploaded, posted, transmitted,
# distributed, or disclosed in any way without Intel’s prior express written
# permission. 
# No license under any patent, copyright, trade secret or other intellectual
# property right is granted to or conferred upon you by disclosure or delivery
# of the Materials, either expressly, by implication, inducement, estoppel or
# otherwise. Any license under such intellectual property rights must be express
# and approved by Intel in writing.
#
# Include any supplier copyright notices as supplier requires Intel to use.
#
# Include supplier trademarks or logos as supplier requires Intel to use, preceded
# by an asterisk. An asterisked footnote can be added as follows:
# *Third Party trademarks are the property of their respective owners.
#
# Unless otherwise agreed by Intel in writing, you may not remove or alter this
# notice or any other notice embedded in Materials by Intel or Intel’s suppliers
# or licensors in any way.

"""This module is the setLogLevel utility

"""
__author__ = 'Todd C Davis'
__Product__ = 'Intel_PDK'

import sys, os, os.path, popen2
from systemMgr import openSysInfo, closeSysInfo, addProperty

def detectEth():
    if sys.platform == 'win32':
        binfile = 'ipconfig /all'
    elif sys.platform == 'linux2':
        binfile = 'ifconfig -a'
    r, w, e = popen2.popen3('%s'%binfile,-1,'b')
    #elines = e.readlines()
    e.close()
    lines = r.readlines()
    r.close()
    w.close()
    #print "lines: %d" % len(lines)
    sInfo = openSysInfo()
    instance = 1
    newinstance = 0
    for line in lines:
        if sys.platform == 'win32':
            if line.startswith("Ethernet adapter"):
                newinstance = 1
            elif newinstance and line.find('Physical Address')>=0:
                parts = line.split()
                #print '%d'%instance + " is " + parts[-1].replace('-',':',5)
                addProperty(sInfo,'Ethernet','MACaddress',parts[-1].replace('-',':',5),{'instance':'%d'%instance})
                newinstance = 0
                instance = instance + 1
        elif sys.platform == 'linux2':
            if line.startswith("eth"):
                parts = line.split()
                if len(parts) == 5 and parts[1] == 'Link' and parts[2] == 'encap:Ethernet':
                    #print parts[0].strip('eth') + " is " + parts[4]
                    instance = int(parts[0].strip('eth')) + 1
                    addProperty(sInfo,'Ethernet','MACaddress',parts[4],{'instance':'%d'%instance})

    closeSysInfo(sInfo)
    return 0

if __name__ == '__main__':
    #print "executing detect ethernet ... "
    sys.exit(detectEth())
