From 5ad696b2085a5e2dfa06727ae5184346dc994e63 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 2 Jul 2015 15:11:23 -0400 Subject: Initial commit --- logincl/__init__.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 logincl/__init__.py (limited to 'logincl/__init__.py') diff --git a/logincl/__init__.py b/logincl/__init__.py new file mode 100644 index 0000000..ff7e179 --- /dev/null +++ b/logincl/__init__.py @@ -0,0 +1,39 @@ +import os +import atexit + + +DEFAULT_CLFILE = os.path.join(os.environ['HOME'], 'login.cl') + +if 'LOGINCL' in os.environ: + CLFILE = os.environ['LOGINCL'] +else: + CLFILE = DEFAULT_CLFILE + + +class LoginCL(object): + def __init__(self, filename): + self.filename = os.path.abspath(filename) + self.curdir = os.path.abspath(os.curdir) + self.destination = os.path.join(self.curdir, os.path.basename(self.filename)) + if self.exists(): + if not self.rmlink(): + return + self.mklink() + + def exists(self): + return os.path.exists(self.destination) + + def mklink(self): + os.symlink(self.filename, self.destination) + + def rmlink(self): + if not os.path.islink(self.destination): + return False + + os.remove(self.destination) + return True + + +lcl = LoginCL(CLFILE) +atexit.register(lcl.rmlink) + -- cgit