mirror of
https://github.com/openSUSE/osc.git
synced 2024-11-10 14:56:14 +01:00
be4f2b031f
fostering open source contributions says that it can discourage contribution by conveying a false sense of "code ownership". Marking territory is negatively affecting collaboration. See http://www.youtube.com/watch?v=ZSFDm3UYkeE
108 lines
3.3 KiB
Python
108 lines
3.3 KiB
Python
#!/usr/bin/python
|
|
|
|
# Copyright (C) 2008 Novell Inc. All rights reserved.
|
|
# This program is free software; it may be used, copied, modified
|
|
# and distributed under the terms of the GNU General Public Licence,
|
|
# either version 2, or (at your option) any later version.
|
|
|
|
|
|
|
|
class OscBaseError(Exception):
|
|
def __init__(self, args=()):
|
|
Exception.__init__(self)
|
|
self.args = args
|
|
def __str__(self):
|
|
return ''.join(self.args)
|
|
|
|
class UserAbort(OscBaseError):
|
|
"""Exception raised when the user requested abortion"""
|
|
|
|
class ConfigError(OscBaseError):
|
|
"""Exception raised when there is an error in the config file"""
|
|
def __init__(self, msg, file):
|
|
OscBaseError.__init__(self)
|
|
self.msg = msg
|
|
self.file = file
|
|
|
|
class ConfigMissingApiurl(ConfigError):
|
|
"""Exception raised when a apiurl does not exist in the config file"""
|
|
def __init__(self, msg, file, url):
|
|
ConfigError.__init__(self, msg, file)
|
|
self.url = url
|
|
|
|
class APIError(OscBaseError):
|
|
"""Exception raised when there is an error in the output from the API"""
|
|
def __init__(self, msg):
|
|
OscBaseError.__init__(self)
|
|
self.msg = msg
|
|
|
|
class NoConfigfile(OscBaseError):
|
|
"""Exception raised when osc's configfile cannot be found"""
|
|
def __init__(self, fname, msg):
|
|
OscBaseError.__init__(self)
|
|
self.file = fname
|
|
self.msg = msg
|
|
|
|
class WrongArgs(OscBaseError):
|
|
"""Exception raised by the cli for wrong arguments usage"""
|
|
|
|
class WrongOptions(OscBaseError):
|
|
"""Exception raised by the cli for wrong option usage"""
|
|
#def __str__(self):
|
|
# s = 'Sorry, wrong options.'
|
|
# if self.args:
|
|
# s += '\n' + self.args
|
|
# return s
|
|
|
|
class NoWorkingCopy(OscBaseError):
|
|
"""Exception raised when directory is neither a project dir nor a package dir"""
|
|
|
|
class WorkingCopyWrongVersion(OscBaseError):
|
|
"""Exception raised when working copy's .osc/_osclib_version doesn't match"""
|
|
|
|
class WorkingCopyOutdated(OscBaseError):
|
|
"""Exception raised when the working copy is outdated.
|
|
It takes a tuple with three arguments: path to wc,
|
|
revision that it has, revision that it should have.
|
|
"""
|
|
def __str__(self):
|
|
return ('Working copy \'%s\' is out of date (rev %s vs rev %s).\n'
|
|
'Looks as if you need to update it first.' \
|
|
% (self[0], self[1], self[2]))
|
|
|
|
|
|
class LinkExpandError(OscBaseError):
|
|
"""Exception raised when source link expansion fails"""
|
|
|
|
class OscIOError(OscBaseError):
|
|
def __init__(self, e, msg):
|
|
OscBaseError.__init__(self)
|
|
self.e = e
|
|
self.msg = msg
|
|
|
|
class SignalInterrupt(Exception):
|
|
"""Exception raised on SIGTERM and SIGHUP."""
|
|
|
|
class PackageError(OscBaseError):
|
|
"""Base class for all Package related exceptions"""
|
|
def __init__(self, prj, pac):
|
|
OscBaseError.__init__(self)
|
|
self.prj = prj
|
|
self.pac = pac
|
|
|
|
class PackageExists(PackageError):
|
|
"""
|
|
Exception raised when a local object already exists
|
|
"""
|
|
def __init__(self, prj, pac, msg):
|
|
PackageError.__init__(self, prj, pac)
|
|
self.msg = msg
|
|
|
|
class PackageMissing(PackageError):
|
|
"""
|
|
Exception raised when a local object doesn't exist
|
|
"""
|
|
def __init__(self, prj, pac, msg):
|
|
PackageError.__init__(self, prj, pac)
|
|
self.msg = msg
|