#!/usr/bin/python
import plistlib, sys, platform, os, os.path, commands
from distutils.version import LooseVersion
import shutil

OSXVersion_string = ''
try:
    OSXVersion_string = platform.mac_ver()[0]
except:
    pass

if OSXVersion_string == None or len(OSXVersion_string) == 0:
    try:
        plistfile_SystemVersion = r"/System/Library/CoreServices/SystemVersion.plist"
        p1 = plistlib.Plist.fromFile(plistfile_SystemVersion)
        OSXVersion_string = p1["ProductVersion"]
    except:
        OSXVersion_string = "10.4.0"

OSXVersion = LooseVersion(OSXVersion_string)
VerLeopard = LooseVersion("10.5.0")
VerTiger = LooseVersion("10.4.0")
Ver103 = LooseVersion("10.3.0")

CCID_Driver_bundle = "ACR38CCIDDriver.bundle"
pcsc_drivers = "/usr/libexec/SmartcardServices/drivers/"
pcsc_driver_path = os.path.join(pcsc_drivers, CCID_Driver_bundle)
bit4id_ccid_path = os.path.join("/Library/bit4id/ccid", CCID_Driver_bundle)

print "OSX version:", OSXVersion_string

if OSXVersion > Ver103 and OSXVersion < VerLeopard:
    print "removing old driver %s" % pcsc_driver_path
    os.system('/bin/rm -rf "%s"' % pcsc_driver_path)
    print "linking new driver %s -> %s" % (bit4id_ccid_path, pcsc_driver_path)
    os.system('/bin/ln -s "%s" "%s"' % (bit4id_ccid_path, pcsc_driver_path) )

sys.exit(0)
