#!/usr/bin/env python
default_config_dir = '/etc/pushpin'
version = '1.5.0'

import sys
import os
import ConfigParser
from setproctitle import setproctitle

setproctitle('pushpin')

exedir = os.path.dirname(os.path.realpath(__file__))

config_file_list = list()
verbose = False

for arg in sys.argv:
	if arg.startswith('--config='):
		config_file_list.append(arg[9:])
		break
	elif arg == '--verbose':
		verbose = True
	elif arg == '--version':
		print 'pushpin %s' % version
		sys.exit(0)

# config file in same dir as executable
config_file_list.append(os.path.abspath('pushpin.conf'))

# config file in ./config
config_file_list.append(os.path.join(os.path.abspath('config'), 'pushpin.conf'))

# config file in /etc
config_file_list.append(os.path.join(default_config_dir, 'pushpin.conf'))

config_file = None
for f in config_file_list:
	if os.path.isfile(f):
		config_file = f
		break

if not config_file:
	print 'Error: no configuration file found. Tried %s' % ', '.join(config_file_list)
	sys.exit(1)

config = ConfigParser.ConfigParser()
config.read([config_file])

libdir = None
if config.has_option('global', 'libdir'):
	libdir = config.get('global', 'libdir')

if libdir:
	sys.path.insert(0, os.path.join(libdir, 'runner'))
	import runner
else:
	from runner import runner

runner.run(exedir, config_file, verbose)
