| # Copyright 2016 Mirantis, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| |
| import enum |
| |
| |
| @enum.unique |
| class SigNum(enum.IntEnum): |
| SIGHUP = 1 # Hangup (POSIX). |
| SIGINT = 2 # Interrupt (ANSI). |
| SIGQUIT = 3 # Quit (POSIX). |
| SIGILL = 4 # Illegal instruction (ANSI). |
| SIGTRAP = 5 # Trace trap (POSIX). |
| SIGABRT = 6 # Abort (ANSI). |
| SIGBUS = 7 # BUS error (4.2 BSD). |
| SIGFPE = 8 # Floating-point exception (ANSI). |
| SIGKILL = 9 # Kill, unblockable (POSIX). |
| SIGUSR1 = 10 # User-defined signal 1 (POSIX). |
| SIGSEGV = 11 # Segmentation violation (ANSI). |
| SIGUSR2 = 12 # User-defined signal 2 (POSIX). |
| SIGPIPE = 13 # Broken pipe (POSIX). |
| SIGALRM = 14 # Alarm clock (POSIX). |
| SIGTERM = 15 # Termination (ANSI). |
| SIGSTKFLT = 16 # Stack fault. |
| SIGCHLD = 17 # Child status has changed (POSIX). |
| SIGCONT = 18 # Continue (POSIX). |
| SIGSTOP = 19 # Stop, unblockable (POSIX). |
| SIGTSTP = 20 # Keyboard stop (POSIX). |
| SIGTTIN = 21 # Background read from tty (POSIX). |
| SIGTTOU = 22 # Background write to tty (POSIX). |
| SIGURG = 23 # Urgent condition on socket (4.2 BSD). |
| SIGXCPU = 24 # CPU limit exceeded (4.2 BSD). |
| SIGXFSZ = 25 # File size limit exceeded (4.2 BSD). |
| SIGVTALRM = 26 # Virtual alarm clock (4.2 BSD). |
| SIGPROF = 27 # Profiling alarm clock (4.2 BSD). |
| SIGWINCH = 28 # Window size change (4.3 BSD, Sun). |
| SIGPOLL = 29 # Pollable event occurred (System V) |
| SIGPWR = 30 # Power failure restart (System V). |
| SIGSYS = 31 # Bad system call. |
| |
| def __str__(self): |
| return "{name}<{value:d}(0x{value:02X})>".format( |
| name=self.name, |
| value=self.value |
| ) |
| |
| |
| @enum.unique |
| class ExitCodes(enum.IntEnum): |
| EX_OK = 0 # successful termination |
| |
| EX_INVALID = 0xDEADBEEF # uint32 debug value. Impossible for POSIX |
| |
| EX_ERROR = 1 # general failure |
| EX_BUILTIN = 2 # Misuse of shell builtins (according to Bash) |
| |
| EX_USAGE = 64 # command line usage error |
| EX_DATAERR = 65 # data format error |
| EX_NOINPUT = 66 # cannot open input |
| EX_NOUSER = 67 # addressee unknown |
| EX_NOHOST = 68 # host name unknown |
| EX_UNAVAILABLE = 69 # service unavailable |
| EX_SOFTWARE = 70 # internal software error |
| EX_OSERR = 71 # system error (e.g., can't fork) |
| EX_OSFILE = 72 # critical OS file missing |
| EX_CANTCREAT = 73 # can't create (user) output file |
| EX_IOERR = 74 # input/output error |
| EX_TEMPFAIL = 75 # temp failure; user is invited to retry |
| EX_PROTOCOL = 76 # remote error in protocol |
| EX_NOPERM = 77 # permission denied |
| EX_CONFIG = 78 # configuration error |
| |
| EX_NOEXEC = 126 # If a command is found but is not executable |
| EX_NOCMD = 127 # If a command is not found |
| |
| # Signal exits: |
| EX_SIGHUP = 128 + SigNum.SIGHUP |
| EX_SIGINT = 128 + SigNum.SIGINT |
| EX_SIGQUIT = 128 + SigNum.SIGQUIT |
| EX_SIGILL = 128 + SigNum.SIGILL |
| EX_SIGTRAP = 128 + SigNum.SIGTRAP |
| EX_SIGABRT = 128 + SigNum.SIGABRT |
| EX_SIGBUS = 128 + SigNum.SIGBUS |
| EX_SIGFPE = 128 + SigNum.SIGFPE |
| EX_SIGKILL = 128 + SigNum.SIGKILL |
| EX_SIGUSR1 = 128 + SigNum.SIGUSR1 |
| EX_SIGSEGV = 128 + SigNum.SIGSEGV |
| EX_SIGUSR2 = 128 + SigNum.SIGUSR2 |
| EX_SIGPIPE = 128 + SigNum.SIGPIPE |
| EX_SIGALRM = 128 + SigNum.SIGALRM |
| EX_SIGTERM = 128 + SigNum.SIGTERM |
| EX_SIGSTKFLT = 128 + SigNum.SIGSTKFLT |
| EX_SIGCHLD = 128 + SigNum.SIGCHLD |
| EX_SIGCONT = 128 + SigNum.SIGCONT |
| EX_SIGSTOP = 128 + SigNum.SIGSTOP |
| EX_SIGTSTP = 128 + SigNum.SIGTSTP |
| EX_SIGTTIN = 128 + SigNum.SIGTTIN |
| EX_SIGTTOU = 128 + SigNum.SIGTTOU |
| EX_SIGURG = 128 + SigNum.SIGURG |
| EX_SIGXCPU = 128 + SigNum.SIGXCPU |
| EX_SIGXFSZ = 128 + SigNum.SIGXFSZ |
| EX_SIGVTALRM = 128 + SigNum.SIGVTALRM |
| EX_SIGPROF = 128 + SigNum.SIGPROF |
| EX_SIGWINCH = 128 + SigNum.SIGWINCH |
| EX_SIGPOLL = 128 + SigNum.SIGPOLL |
| EX_SIGPWR = 128 + SigNum.SIGPWR |
| EX_SIGSYS = 128 + SigNum.SIGSYS |
| |
| def __str__(self): |
| return "{name}<{value:d}(0x{value:02X})>".format( |
| name=self.name, |
| value=self.value |
| ) |