summaryrefslogtreecommitdiff
path: root/internal/color/table.go
blob: e0e4946bd3435389d2cdcec12532a1f13273db57 (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
package color

import (
	"fmt"
	"os"
)

const sampleParagraph string = "Mimecast is Making Email Safer for Business. " +
	"We believe that securely operating a business in the cloud requires new " +
	"levels of IT preparedness, centered around cyber resilience. This is why " +
	"we unify the delivery and management of security, continuity and data " +
	"protection for email via one, simple-to-use cloud platform. Thousands of " +
	"organizations trust us to increase their cyber resilience preparedness, " +
	"streamline compliance, reduce IT complexity and keep their business running. " +
	"We give employees fast and secure access to sensitive business information, " +
	"and ensure email keeps flowing in the event of an outage. Mimecast will " +
	"remain committed to protecting your IT assets through constant innovation " +
	"and focus on your success."

// TablePrintAndExit prints the color table and then exits the process.
func TablePrintAndExit(displaySampleParagraph bool) {
	for _, attr := range AttributeNames {
		if attr == "Hidden" || attr == "SlowBlink" {
			continue
		}
		printColorTable(attr, displaySampleParagraph)
	}
	os.Exit(0)
}

func printColorTable(attr string, displaySampleParagraph bool) {
	for _, fg := range ColorNames {
		fgColor, _ := ToFgColor(fg)
		for _, bg := range ColorNames {
			if fg == bg {
				continue
			}

			bgColor, _ := ToBgColor(bg)
			attribute, _ := ToAttribute(attr)
			text := fmt.Sprintf(" Foreground:%10s  |  Background:%10s  |  Attribute:%10s ",
				fg, bg, attr)
			fmt.Print(PaintStrWithAttr(text, fgColor, bgColor, attribute))

			if displaySampleParagraph {
				fmt.Print("\n")
				fmt.Print(PaintStrWithAttr(sampleParagraph, fgColor, bgColor, attribute))
				fmt.Print("\n")
			}
			fmt.Print("\n")
		}
	}
}