libretime/python_apps/airtime-celery/setup.py

67 lines
2.1 KiB
Python

from setuptools import setup
from subprocess import call
import os
import sys
# Change directory since setuptools uses relative paths
script_path = os.path.dirname(os.path.realpath(__file__))
print script_path
os.chdir(script_path)
install_args = ['install', 'install_data', 'develop']
no_init = False
run_postinst = False
# XXX Definitely not the best way of doing this...
if sys.argv[1] in install_args and "--no-init-script" not in sys.argv:
run_postinst = True
data_files = [('/etc/default', ['install/conf/airtime-celery']),
('/etc/init.d', ['install/initd/airtime-celery'])]
else:
if "--no-init-script" in sys.argv:
no_init = True
run_postinst = True # We still want to run the postinst here
sys.argv.remove("--no-init-script")
data_files = []
def postinst():
if not no_init:
# Make /etc/init.d file executable and set proper
# permissions for the defaults config file
os.chmod('/etc/init.d/airtime-celery', 0755)
os.chmod('/etc/default/airtime-celery', 0640)
# Make the airtime log directory group-writable
os.chmod('/var/log/airtime', 0775)
# Create the Celery user
call(['adduser', '--no-create-home', '--gecos', '', '--disabled-login', '--firstuid', '1', '--lastuid', '999', 'celery'])
# Add celery to the www-data group
call(['usermod', '-G', 'www-data', '-a', 'celery'])
print "Reloading initctl configuration"
call(['initctl', 'reload-configuration'])
print "Setting Celery to start on boot"
call(['update-rc.d', 'airtime-celery', 'defaults'])
print "Run \"sudo service airtime-celery restart\" now."
setup(name='airtime-celery',
version='0.1',
description='Airtime Celery service',
url='http://github.com/sourcefabric/Airtime',
author='Sourcefabric',
author_email='duncan.sommerville@sourcefabric.org',
license='MIT',
packages=['airtime-celery'],
install_requires=[
'soundcloud',
'celery',
'kombu',
'configobj'
],
zip_safe=False,
data_files=data_files)
if run_postinst:
postinst()