@@ -22,29 +22,64 @@ func (ap *ApplyPrinter) Print(r io.Reader, w io.Writer) {
22
22
applyActionCreated = "created"
23
23
applyActionConfigured = "configured"
24
24
applyActionUnchanged = "unchanged"
25
+
26
+ dryRunStr = "(dry run)"
25
27
)
26
28
27
- colors := map [string ]color.Color {
29
+ darkColors := map [string ]color.Color {
30
+ applyActionCreated : color .Green ,
31
+ applyActionConfigured : color .Yellow ,
32
+ applyActionUnchanged : color .Magenta ,
33
+ dryRunStr : color .Cyan ,
34
+ }
35
+ lightColors := map [string ]color.Color {
28
36
applyActionCreated : color .Green ,
29
37
applyActionConfigured : color .Yellow ,
30
38
applyActionUnchanged : color .Magenta ,
39
+ dryRunStr : color .Blue ,
31
40
}
32
41
33
- colorize := func (line , action string , wr io.Writer ) {
42
+ colors := func (action string , dark bool ) color.Color {
43
+ if dark {
44
+ return darkColors [action ]
45
+ }
46
+ return lightColors [action ]
47
+ }
48
+
49
+ colorize := func (line , action string , dryRun bool , wr io.Writer ) {
50
+ if dryRun {
51
+ arg := strings .TrimSuffix (line , fmt .Sprintf (" %s %s" , action , dryRunStr ))
52
+ fmt .Fprintf (w , "%s %s %s\n " ,
53
+ arg ,
54
+ color .Apply (action , colors (action , ap .DarkBackground )),
55
+ color .Apply (dryRunStr , colors (dryRunStr , ap .DarkBackground )),
56
+ )
57
+ return
58
+ }
59
+
34
60
arg := strings .TrimSuffix (line , " " + action )
35
- fmt .Fprintf (w , "%s %s\n " , arg , color .Apply (action , colors [ action ] ))
61
+ fmt .Fprintf (w , "%s %s\n " , arg , color .Apply (action , colors ( action , ap . DarkBackground ) ))
36
62
}
37
63
38
64
scanner := bufio .NewScanner (r )
39
65
for scanner .Scan () {
40
66
line := scanner .Text ()
41
67
switch {
68
+ // on dry run cases, it shows "xxx created (dry run)"
69
+ case strings .HasSuffix (line , fmt .Sprintf (" %s %s" , applyActionCreated , dryRunStr )):
70
+ colorize (line , applyActionCreated , true , w )
71
+ case strings .HasSuffix (line , fmt .Sprintf (" %s %s" , applyActionConfigured , dryRunStr )):
72
+ colorize (line , applyActionConfigured , true , w )
73
+ case strings .HasSuffix (line , fmt .Sprintf (" %s %s" , applyActionUnchanged , dryRunStr )):
74
+ colorize (line , applyActionUnchanged , true , w )
75
+
76
+ // not dry run cases, it shows "xxx created"
42
77
case strings .HasSuffix (line , " " + applyActionCreated ):
43
- colorize (line , applyActionCreated , w )
78
+ colorize (line , applyActionCreated , false , w )
44
79
case strings .HasSuffix (line , " " + applyActionConfigured ):
45
- colorize (line , applyActionConfigured , w )
80
+ colorize (line , applyActionConfigured , false , w )
46
81
case strings .HasSuffix (line , " " + applyActionUnchanged ):
47
- colorize (line , applyActionUnchanged , w )
82
+ colorize (line , applyActionUnchanged , false , w )
48
83
default :
49
84
fmt .Fprintf (w , "%s\n " , color .Apply (line , color .Green ))
50
85
}
0 commit comments