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

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# 

5 

6import sys 

7 

8 

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' 

16 

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' 

23 

24 def __init__(self, verbose=0, quiet=False): 

25 self.verb = verbose 

26 self.quiet = quiet 

27 if self.quiet: 

28 self.verb = 0 

29 

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) 

35 

36 def debug(self, msg=''): 

37 """Debug method.""" 

38 if self.verb >= 3: 

39 self.verbose(msg) 

40 

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) 

46 

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) 

52 

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) 

58 

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) 

63 

64 def die(self, msg=''): 

65 """Show an error and exit the program.""" 

66 self.error(msg) 

67 sys.exit(1)