#
# arch-tag: build script for PMACS server modules
# Time-stamp: <2006-03-22 10:50:53 mike>
#
from distutils.core import setup, Extension
import sys
import os
import glob
import shutil
import pwd

VERSION = '3.6'


def clean(dir):
    for f in os.listdir(dir):
        os.unlink(os.path.join(dir, f))
    os.rmdir(dir)
    
if 'build' in sys.argv:
    try:
        clean('ops_db')
    except OSError:
        pass
    print "Building iospec database ..."
    os.system('./buildiodb.py iodesc')
    shutil.copy(os.path.join('ops_db', 'iospec'), '.')
    os.chmod('iospec', 0666)

# Name of password database
pwfile = '/var/lib/pmacs/passwords.txt'

if 'install' in sys.argv:
    for f in glob.glob('/var/lib/pmacs/__db*'):
        os.unlink(f)
    if not os.path.isfile(pwfile):
        fd = open(pwfile, 'w')
        fd.write('admin:pmacs\n')
        fd.close()
    if os.path.isfile('/var/lib/pmacs/ops_db/svcstate'):
        os.unlink('/var/lib/pmacs/ops_db/svcstate')
    
setup(name='pmacs-server',
      version=VERSION,
      author='Michael Kenney',
      author_email='mikek@apl.washington.edu',
      description='PMACS Server Modules',
      package_dir={'pmacs' : '.'},
      py_modules=['pmacs.npc', 'pmacs.loads', 'pmacs.NPCData',
                  'pmacs.buses', 'pmacs.sensors', 'pmacs.auth',
                  'pmacs.mv', 'pmacs.io', 'pmacs.simnpc',
                  'pmacs.xmlenc', 'pmacs.validator', 'pmacs.config',
                  'pmacs.psc', 'pmacs.gf', 'pmacs.archive',
                  'pmacs.calibration', 'pmacs.rrd', 'timeoutsocket'],
      scripts=['pmacs-server.py', 'buildiodb.py', 'adcread.py', 'iopset.py',
               'iopclear.py', 'ioptest.py', 'npctest.py', 'servertest.py'],
      data_files=[('/var/lib/pmacs/ops_db', ['iospec']),
                  ('/var/lib/pmacs', ['defcal.csv']),
                  ('/var/lib/pmacs', ['cal.csv']),
                  ('/etc/rc.d/init.d', ['pmacsd'])])

if 'install' in sys.argv:
    try:
        uid,gid = pwd.getpwnam('pmacs')[2:4]
        print "Changing database owner to 'pmacs'"
        os.chown('/var/lib/pmacs/ops_db/iospec', uid, gid)
        os.chown('/var/lib/pmacs/defcal.csv', uid, gid)
        os.chown('/var/lib/pmacs/cal.csv', uid, gid)
        os.chown(pwfile, uid, gid)
    except KeyError:
        pass
    os.chmod('/var/lib/pmacs/ops_db/iospec', 0666)
    os.chmod(pwfile, 0600)
    
## Local Variables:
## compile-command: "python setup.py sdist"
## End:
