#!/usr/bin/env python
# GPL. (C) 2015 Paolo Patruno.

# This program is free software; you can redistribute it and/or modify 
# it under the terms of the GNU General Public License as published by 
# the Free Software Foundation; either version 2 of the License, or 
# (at your option) any later version. 
# 
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
# GNU General Public License for more details. 
# 
# You should have received a copy of the GNU General Public License 
# along with this program; if not, write to the Free Software 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
# 


import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'rmap.settings'

import django
django.setup()

from django.conf import settings

#from rmap import daemon
from rmap import __version__
from django.core import management
import rmap.settings

#rmapweb = daemon.Daemon(
#        stdin="/dev/null",
#        stdout=rmap.settings.logfileweb,
#        stderr=rmap.settings.errfileweb,
#        pidfile=rmap.settings.lockfileweb,
#        user=rmap.settings.userweb,
#        group=rmap.settings.groupweb
#)


#class  mydaemon(daemon):
#
#    def optionparser(self):
#        op = super(miodaemon, self).optionparser()
#        op.add_option("-s", "--syncdb",action="store_false")
#        return op 	  				 


def main():

    import os,logging,logging.handlers

    handler = logging.handlers.RotatingFileHandler(rmap.settings.logfileweb, maxBytes=5000000, backupCount=10)
    formatter=logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

    handler.setFormatter(formatter)
    #handler.setLevel(logging.DEBUG)

    # Add the log message handler to the root logger
    logging.getLogger('').addHandler(handler)
    logging.getLogger('').setLevel(logging.DEBUG)

    logging.info('Starting up rmapweb version '+__version__)


    management.call_command("runserver",rmap.settings.port,use_reloader=False)


if __name__ == '__main__':

    import sys, os

    #    # this is a triky for ubuntu and debian that remove /var/run every boot
    #    # ATTENTION, this should be a security problem
    #    path=os.path.dirname(rmap.settings.lockfileweb)
    #    if (not os.path.lexists(path) and path == "/var/run/rmap" ):
    #        os.mkdir(path)
    #        if (os.getuid() == 0):
    #
    #            user=rmap.settings.userweb
    #            group=rmap.settings.groupweb
    #            if user is not None and group is not None:
    #                from pwd import getpwnam
    #                from grp import getgrnam
    #                uid = getpwnam<(user)[2]
    #                gid = getgrnam(group)[2]
    #                os.chown(path,uid,gid)
    #
    #    if rmapweb.service():

    sys.stdout.write("Rmapweb version "+__version__+"\n")
    sys.stdout.write("Daemon started with pid %d\n" % os.getpid())
    sys.stdout.write("Daemon stdout output\n")
    sys.stderr.write("Daemon stderr output\n")

    sys.exit(main())  # (this code was run as script)
