Skip to content

Commit

Permalink
Shift to conversion exit codes by 128
Browse files Browse the repository at this point in the history
Distinguish from podman or other errors in called binaries by shifting
the error codes by 128.
  • Loading branch information
deeplow committed Sep 12, 2023
1 parent f80d31b commit 628cadf
Showing 1 changed file with 13 additions and 11 deletions.
24 changes: 13 additions & 11 deletions dangerzone/conversion/errors.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from typing import List, Optional, Type

# XXX: errors start at 128 for conversion-related issues
ERROR_SHIFT = 128

class ConversionException(Exception):
error_message = "Unspecified error"
error_code = -1
error_code = ERROR_SHIFT

def __init__(self, error_message: Optional[str] = None) -> None:
if error_message:
Expand All @@ -19,54 +21,54 @@ def get_subclasses(cls) -> List[Type["ConversionException"]]:


class DocFormatUnsupported(ConversionException):
error_code = 10
error_code = ERROR_SHIFT + 10
error_message = "The document format is not supported"


class DocFormatUnsupportedHWPArm(DocFormatUnsupported):
error_code = 15
error_code = ERROR_SHIFT + 15
error_message = "HWP / HWPX formats are not supported in ARM architectures"


class DocFormatUnsupportedHWPQubes(DocFormatUnsupported):
error_code = 16
error_code = ERROR_SHIFT + 16
error_message = "HWP / HWPX formats are not supported in Qubes"


class LibreofficeFailure(ConversionException):
error_code = 20
error_code = ERROR_SHIFT + 20
error_message = "Conversion to PDF with LibreOffice failed"


class InvalidGMConversion(ConversionException):
error_code = 30
error_code = ERROR_SHIFT + 30
error_message = "Invalid conversion (Graphics Magic)"

def __init__(self, error_message: str) -> None:
super(error_message)


class PagesException(ConversionException):
error_code = 40
error_code = ERROR_SHIFT + 40


class NoPageCountException(PagesException):
error_code = 41
error_code = ERROR_SHIFT + 41
error_message = "Number of pages could not be extracted from PDF"


class PDFtoPPMException(ConversionException):
error_code = 50
error_code = ERROR_SHIFT + 50
error_message = "Error converting PDF to Pixels (pdftoppm)"


class PDFtoPPMInvalidHeader(PDFtoPPMException):
error_code = 51
error_code = ERROR_SHIFT + 51
error_message = "Error converting PDF to Pixels (Invalid PPM header)"


class PDFtoPPMInvalidDepth(PDFtoPPMException):
error_code = 52
error_code = ERROR_SHIFT + 52
error_message = "Error converting PDF to Pixels (Invalid PPM depth)"


Expand Down

0 comments on commit 628cadf

Please sign in to comment.