aboutsummaryrefslogtreecommitdiff
path: root/scripts/zjsbanner
blob: 85bfc54141a54134b93c72c4de9b040d0d6e45b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python3

# Copyright (c) 2017, Intel Corporation.

# zjsbanner - prints input text in large format

import sys


banner_font = {
    '0': 'ejlpe', '1': '4c44v', '2': 'u116v', '3': 'u1e1u', '4': 'hhv11',
    '5': 'vgu1u', '6': 'fguhe', '7': 'v248g', '8': 'ehehe', '9': 'ehf11',
    'A': '4avhh', 'B': 'uhuhu', 'C': 'fgggf', 'D': 'uhhhu', 'E': 'vgugv',
    'F': 'vgugg', 'G': 'fgjhe', 'H': 'hhvhh', 'I': 'v444v', 'J': 'v22ic',
    'K': 'hisih', 'L': 'ggggv', 'M': 'hrlhh', 'N': 'hpljh', 'O': 'ehhhe',
    'P': 'uhugg', 'Q': 'ehhjf', 'R': 'uhuih', 'S': 'fge1u', 'T': 'v4444',
    'U': 'hhhhe', 'V': 'hhha4', 'W': 'hhlrh', 'X': 'ha4ah', 'Y': 'ha444',
    'Z': 'v248v', '?': 'e1c04', ' ': '00000', '-': '00e00', '.': '00004',
    '_': '0000v',
}


def find_pattern(char, line):
    char = char.upper()
    if char not in banner_font:
        char = '?'
    print_character = banner_font[char][line]
    if print_character.isalpha():
        mask = ord(print_character) - ord('a') + 10
    else:
        mask = ord(print_character) - ord('0')
    return "{0:5b}".format(mask).replace('1', '#').replace('0', ' ')


def banner(message):
    while len(message) > 0:
        print("")
        line = message[:11]
        message = message[11:]

        for i in range(5):
            out = ''
            for j in range(len(line)):
                out += (find_pattern(line[j], i) + '  ')
            print(out)


def main():
    if len(sys.argv) <= 1:
        print("usage: zjsbanner <text>")
        sys.exit(1)

    banner(' '.join(sys.argv[1:]))


if __name__ == "__main__":
   main()