# ---------------------------------------------------------------------------- #
## \file plog.py
## \author Sebastien Beaugrand
## \sa http://beaugrand.chez.com/
## \copyright CeCILL 2.1 Free Software license
## \note Python Imap Gtk Mail
# ---------------------------------------------------------------------------- #
from os import path, unlink, getpid, kill


# ---------------------------------------------------------------------------- #
## \class PLog
# ---------------------------------------------------------------------------- #
class PLog:
    def __init__(self, filename):
        self.filename = filename
        self.pid = None

    def read(self):
        if path.exists(self.filename):
            with open(self.filename, 'r') as f:
                self.pid = int(f.read())
            if not path.isdir('/proc/{}'.format(self.pid)):
                self.pid = None
                self.unlink()
        return self.pid

    def write(self):
        with open(self.filename, 'w') as f:
            f.write('{}'.format(getpid()))

    def kill(self):
        if self.pid is not None:
            kill(self.pid, 15)

    def unlink(self):
        if path.exists(self.filename):
            unlink(self.filename)