Coverage for pass_audit/msg.py: 100%
41 statements
« prev ^ index » next coverage.py v6.5.0, created at 2022-11-16 11:35 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2022-11-16 11:35 +0000
1# -*- encoding: utf-8 -*-
2# pass audit - Password Store Extension (https://www.passwordstore.org/)
3# Copyright (C) 2018-2022 Alexandre PUJOL <alexandre@pujol.io>.
4#
6import sys
9class Msg():
10 """General class to manage output messages."""
11 # Normal colors
12 green = '\033[32m'
13 yellow = '\033[33m'
14 magenta = '\033[35m'
15 end = '\033[0m'
17 # Bold colors
18 RED = '\033[1m\033[91m'
19 GREEN = '\033[1m\033[92m'
20 YELLOW = '\033[1m\033[93m'
21 MAGENTA = '\033[1m\033[95m'
22 BOLD = '\033[1m'
24 def __init__(self, verbose=0, quiet=False):
25 self.verb = verbose
26 self.quiet = quiet
27 if self.quiet:
28 self.verb = 0
30 def verbose(self, msg=''):
31 """Verbose method."""
32 if self.verb >= 1:
33 out = f"{self.MAGENTA} . {self.end}{self.magenta}{msg}{self.end}"
34 print(out, file=sys.stdout)
36 def debug(self, msg=''):
37 """Debug method."""
38 if self.verb >= 3:
39 self.verbose(msg)
41 def message(self, msg=''):
42 """Message method."""
43 if not self.quiet:
44 out = f"{self.BOLD} . {self.end}{msg}"
45 print(out, file=sys.stdout)
47 def success(self, msg=''):
48 """Success method."""
49 if not self.quiet:
50 out = f"{self.GREEN} (*) {self.end}{self.green}{msg}{self.end}"
51 print(out, file=sys.stdout)
53 def warning(self, msg=''):
54 """Warning method."""
55 if not self.quiet:
56 out = f"{self.YELLOW} w {self.end}{self.yellow}{msg}{self.end}"
57 print(out, file=sys.stdout)
59 def error(self, msg=''):
60 """Error method."""
61 err = f"{self.RED} [x] {self.end}{self.BOLD}Error: {self.end}{msg}"
62 print(err, file=sys.stderr)
64 def die(self, msg=''):
65 """Show an error and exit the program."""
66 self.error(msg)
67 sys.exit(1)