From 406df0cdab322d077151d2a9d449c8b4f799180d Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Fri, 3 Jul 2015 14:06:07 -0400 Subject: Add LoginCLError and associated failures --- logincl/__init__.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/logincl/__init__.py b/logincl/__init__.py index ff7e179..8226c52 100644 --- a/logincl/__init__.py +++ b/logincl/__init__.py @@ -2,19 +2,29 @@ import os import atexit -DEFAULT_CLFILE = os.path.join(os.environ['HOME'], 'login.cl') +DEFAULT_CLFILE = os.path.join(os.environ['HOME'], 'iraf', 'login.cl') if 'LOGINCL' in os.environ: CLFILE = os.environ['LOGINCL'] else: CLFILE = DEFAULT_CLFILE +class LoginCLError(Exception): + pass class LoginCL(object): def __init__(self, filename): self.filename = os.path.abspath(filename) + + if not os.path.exists(self.filename): + raise LoginCLError('{0} does not exist.'.format(self.filename)) + + if not os.path.isfile(self.filename): + raise LoginCLError('{0} is not a file.'.format(self.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 @@ -33,7 +43,8 @@ class LoginCL(object): os.remove(self.destination) return True - -lcl = LoginCL(CLFILE) -atexit.register(lcl.rmlink) - +try: + lcl = LoginCL(CLFILE) + atexit.register(lcl.rmlink) +except LoginCLError: + pass -- cgit