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

OSXVersion_str = platform.mac_ver()[0]
if not OSXVersion_str or len(OSXVersion_str) == 0:
    try:
        OSXVersion_str = os.popen('sw_vers').read().splitlines()[1].split('\t')[1]
    except:
        pass
if not OSXVersion_str or len(OSXVersion_str) == 0:
    OSXVersion_str = '10.4.0'

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

print "OSX version:", platform.mac_ver()[0], " - actual:", OSXVersion_str


if OSXVersion >= VerLeopard:
    keychain_command = '/usr/bin/security add-trusted-cert -d -k "/Library/Keychains/System.keychain" "%s"'
else:
    keychain_command = '/usr/bin/security import "%s" -k "/System/Library/Keychains/X509Anchors" -t cert'

print 'Installing CA certificates...'
res_dir = os.path.split(sys.argv[0])[0]
for f in os.listdir(res_dir):
    ext = f[-4:].lower()
    if ext == '.cer' or ext == '.crt':
        print 'Installing certificate ', f
        os.system(keychain_command % os.path.join(res_dir, f) )

print 'Installing serial numbers and configs...'
print 'curdir: %s' % os.getcwd()
curdir=os.getcwd()
os.chdir(res_dir)
print 'curdir: %s' % os.getcwd()
dest_dir = '/System/Library/Security/tokend/ITACNS.tokend/Contents/Resources'
cmd = '/bin/cp *.serial "%s"' % (dest_dir)
print 'running:', cmd
os.system(cmd )
cmd = '/bin/cp *.conf "%s"' % (dest_dir)
print 'running:', cmd
os.system(cmd )
os.chdir(curdir)


