53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
|
|
||
|
import os
|
||
|
import shutil
|
||
|
import stat
|
||
|
from setuptools import setup
|
||
|
from setuptools.command.install import install
|
||
|
|
||
|
NAME = 'Hochbeet'
|
||
|
VERSION = '1'
|
||
|
AUTHOR = 'Thomas Klaehn'
|
||
|
EMAIL = 'tkl@blackfinn.de'
|
||
|
PACKAGES = ['hochbeet']
|
||
|
REQUIRES = ['Flask', 'gunicorn', 'RPi.GPIO']
|
||
|
CONFIG_FILE = 'config.json'
|
||
|
PACKAGE_DATA = {
|
||
|
'hochbeet': [
|
||
|
'templates/*',
|
||
|
'static/css/*',
|
||
|
'static/scripts/*',
|
||
|
'config/config.json'
|
||
|
]
|
||
|
}
|
||
|
|
||
|
SERVICEDIR = "/lib/systemd/system"
|
||
|
START_SCRIPT = 'hochbeet.service'
|
||
|
DAEMON_START_SCRIPT = os.path.join(SERVICEDIR, START_SCRIPT)
|
||
|
LOGFILE = "/var/log/hochbeet.log"
|
||
|
|
||
|
|
||
|
class Install(install):
|
||
|
def run(self):
|
||
|
install.run(self)
|
||
|
os.makedirs(SERVICEDIR, exist_ok=True)
|
||
|
shutil.copyfile(START_SCRIPT, DAEMON_START_SCRIPT)
|
||
|
os.chmod(DAEMON_START_SCRIPT, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH)
|
||
|
|
||
|
try:
|
||
|
open(LOGFILE, 'r')
|
||
|
except FileNotFoundError:
|
||
|
os.makedirs(os.path.dirname(LOGFILE), exist_ok=True)
|
||
|
open(LOGFILE, 'x')
|
||
|
os.chmod(LOGFILE,
|
||
|
stat.S_IRUSR |
|
||
|
stat.S_IWUSR |
|
||
|
stat.S_IRGRP |
|
||
|
stat.S_IWGRP |
|
||
|
stat.S_IROTH |
|
||
|
stat.S_IWOTH)
|
||
|
|
||
|
setup(name=NAME, version=VERSION, long_description=__doc__, author=AUTHOR, author_email=EMAIL,
|
||
|
packages=PACKAGES, include_package_data=True, package_data=PACKAGE_DATA, zip_safe=False,
|
||
|
install_requires=REQUIRES, cmdclass={'install': Install})
|