# Copyright (C) 2002-2023 Free Software Foundation, Inc. # # 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 3 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, see . #=============================================================================== # Define global imports #=============================================================================== import os from . import constants #=============================================================================== # Define module information #=============================================================================== __author__ = constants.__author__ __license__ = constants.__license__ __copyright__ = constants.__copyright__ #=============================================================================== # Define global constants #=============================================================================== #=============================================================================== # Define GLError class #=============================================================================== class GLError(Exception): '''Exception handler for pygnulib classes.''' def __init__(self, errno, errinfo=None): '''Each error has following parameters: errno: code of error; used to catch error type 1: file does not exist in GLFileSystem: 2: cannot patch file inside GLFileSystem: 3: configure file does not exist: 4: minimum supported autoconf version is 2.59, not 5: is expected to contain gl_M4_BASE([]) 6: missing sourcebase argument 7: missing docbase argument 8: missing testsbase argument 9: missing libname argument 10: conddeps are not supported with inctests 11: incompatible licenses on modules: 12: cannot process empty filelist 13: cannot create the given directory: 14: cannot delete the given file: 15: cannot create the given file: 16: cannot transform the given file: 17: cannot update the given file: 18: module lacks a license: 19: could not create destination directory: errinfo: additional information''' self.errno = errno self.errinfo = errinfo self.args = (self.errno, self.errinfo) def __repr__(self): errno = self.errno errinfo = self.errinfo if self.message == None: message = None if errno == 1: message = "file does not exist in GLFileSystem: %s" % repr(errinfo) elif errno == 2: message = "cannot patch file inside GLFileSystem: %s" % repr(errinfo) elif errno == 3: message = "configure file does not exist: %s" % repr(errinfo) elif errno == 4: message = "minimum supported autoconf version is 2.59, not %s" % repr(errinfo) elif errno == 5: message = "%s is expected to contain gl_M4_BASE([%s])" % (repr(os.path.join(errinfo, 'gnulib-comp.m4')), repr(errinfo)) elif errno == 6: message = "missing sourcebase argument; cache file doesn't contain it, so you might have to set this argument" elif errno == 7: message = "missing docbase argument; you might have to create GLImport instance with mode 0 and docbase argument" elif errno == 8: message = "missing testsbase argument; cache file doesn't contain it, so you might have to set this argument" elif errno == 9: message = "missing libname argument; cache file doesn't contain it, so you might have to set this argument" elif errno == 10: message = "conddeps are not supported with inctests" elif errno == 11: message = "incompatible licenses on modules: %s" % repr(errinfo) elif errno == 12: message = "cannot process empty filelist" elif errno == 13: message = "cannot create the given directory: %s" % repr(errinfo) elif errno == 14: message = "cannot remove the given file: %s" % repr(errinfo) elif errno == 15: message = "cannot create the given file: %s" % repr(errinfo) elif errno == 16: message = "cannot transform the given file: %s" % repr(errinfo) elif errno == 17: message = "cannot update/replace the given file: %s" % repr(errinfo) elif errno == 18: message = "module lacks a license: %s" % repr(errinfo) elif errno == 19: message = "error when running subprocess: %s" % repr(errinfo) self.message = '[Errno %d] %s' % (errno, message) return self.message