@@ -21,156 +21,8 @@ bool check_console() {
21
21
return false ;
22
22
}
23
23
24
- /* Helpers for drawing the banner. */
25
- static inline void block (unsigned int a, short x, short y, unsigned long n) {
26
- HANDLE h = GetStdHandle (STD_OUTPUT_HANDLE);
27
- TCHAR s = _T (' ' );
28
-
29
- unsigned long out;
30
- COORD c = { x, y };
31
- FillConsoleOutputAttribute (h, a, n, c, &out);
32
- FillConsoleOutputCharacter (h, s, n, c, &out);
33
- }
34
-
35
- static inline void R (short x, short y, unsigned long n) {
36
- block (BACKGROUND_RED | BACKGROUND_INTENSITY, x, y, n);
37
- }
38
-
39
- static inline void r (short x, short y, unsigned long n) {
40
- block (BACKGROUND_RED, x, y, n);
41
- }
42
-
43
- static inline void b (short x, short y, unsigned long n) {
44
- block (0 , x, y, n);
45
- }
46
-
47
24
void alloc_console (nssm_service_t *service) {
48
25
if (service->no_console ) return ;
49
26
50
27
AllocConsole ();
51
-
52
- /* Disable accidental closure. */
53
- HWND window = GetConsoleWindow ();
54
- HMENU menu = GetSystemMenu (window, false );
55
- EnableMenuItem (menu, SC_CLOSE, MF_GRAYED);
56
-
57
- /* Set a title like "[NSSM] Jenkins" */
58
- TCHAR displayname[SERVICE_NAME_LENGTH];
59
- unsigned long len = _countof (displayname);
60
- SC_HANDLE services = open_service_manager (SC_MANAGER_CONNECT);
61
- if (services) {
62
- if (! GetServiceDisplayName (services, service->name , displayname, &len)) ZeroMemory (displayname, sizeof (displayname));
63
- CloseServiceHandle (services);
64
- }
65
- if (! displayname[0 ]) _sntprintf_s (displayname, _countof (displayname), _TRUNCATE, _T (" %s" ), service->name );
66
-
67
- TCHAR title[65535 ];
68
- _sntprintf_s (title, _countof (title), _TRUNCATE, _T (" [%s] %s" ), NSSM, displayname);
69
- SetConsoleTitle (title);
70
-
71
- /* Draw the NSSM logo on the console window. */
72
- short y = 0 ;
73
-
74
- b (0 , y, 80 );
75
- y++;
76
-
77
- b (0 , y, 80 );
78
- y++;
79
-
80
- b (0 , y, 80 );
81
- y++;
82
-
83
- b (0 , y, 80 );
84
- y++;
85
-
86
- b (0 , y, 80 );
87
- r (18 , y, 5 ); r (28 , y, 4 ); r (41 , y, 4 ); r (68 , y, 1 );
88
- R (6 , y, 5 ); R (19 , y, 4 ); R (29 , y, 1 ); R (32 , y, 3 ); R (42 , y, 1 ); R (45 , y, 3 ); R (52 , y, 5 ); R (69 , y, 4 );
89
- y++;
90
-
91
- b (0 , y, 80 );
92
- r (8 , y, 4 ); r (20 , y, 1 ); r (28 , y, 1 ); r (33 , y, 3 ); r (41 , y, 1 ); r (46 , y, 3 ); r (57 , y, 1 );
93
- R (9 , y, 2 ); R (21 , y, 1 ); R (27 , y, 1 ); R (34 , y, 1 ); R (40 , y, 1 ); R (47 , y, 1 ); R (54 , y, 3 ); R (68 , y, 3 );
94
- y++;
95
-
96
- b (0 , y, 80 );
97
- r (12 , y, 1 ); r (20 , y, 1 ); r (26 , y, 1 ); r (34 , y, 2 ); r (39 , y, 1 ); r (47 , y, 2 ); r (67 , y, 2 );
98
- R (9 , y, 3 ); R (21 , y, 1 ); R (27 , y, 1 ); R (40 , y, 1 ); R (54 , y, 1 ); R (56 , y, 2 ); R (67 , y, 1 ); R (69 , y, 2 );
99
- y++;
100
-
101
- b (0 , y, 80 );
102
- r (9 , y, 1 ); r (20 , y, 1 ); r (26 , y, 1 ); r (35 , y, 1 ); r (39 , y, 1 ); r (48 , y, 1 ); r (58 , y, 1 );
103
- R (10 , y, 3 ); R (21 , y, 1 ); R (27 , y, 1 ); R (40 , y, 1 ); R (54 , y, 1 ); R (56 , y, 2 ); R (67 , y, 1 ); R (69 , y, 2 );
104
- y++;
105
-
106
- b (0 , y, 80 );
107
- r (9 , y, 1 ); r (56 , y, 1 ); r (66 , y, 2 );
108
- R (11 , y, 3 ); R (21 , y, 1 ); R (26 , y, 2 ); R (39 , y, 2 ); R (54 , y, 1 ); R (57 , y, 2 ); R (69 , y, 2 );
109
- y++;
110
-
111
- b (0 , y, 80 );
112
- r (9 , y, 1 ); r (26 , y, 1 ); r (39 , y, 1 ); r (59 , y, 1 );
113
- R (12 , y, 3 ); R (21 , y, 1 ); R (27 , y, 2 ); R (40 , y, 2 ); R (54 , y, 1 ); R (57 , y, 2 ); R (66 , y, 1 ); R (69 , y, 2 );
114
- y++;
115
-
116
- b (0 , y, 80 );
117
- r (9 , y, 1 ); r (12 , y, 4 ); r (30 , y, 1 ); r (43 , y, 1 ); r (57 , y, 1 ); r (65 , y, 2 );
118
- R (13 , y, 2 ); R (21 , y, 1 ); R (27 , y, 3 ); R (40 , y, 3 ); R (54 , y, 1 ); R (58 , y, 2 ); R (69 , y, 2 );
119
- y++;
120
-
121
- b (0 , y, 80 );
122
- r (9 , y, 1 ); r (13 , y, 4 ); r (27 , y, 7 ); r (40 , y, 7 );
123
- R (14 , y, 2 ); R (21 , y, 1 ); R (28 , y, 5 ); R (41 , y, 5 ); R (54 , y, 1 ); R (58 , y, 2 ); R (65 , y, 1 ); R (69 , y, 2 );
124
- y++;
125
-
126
- b (0 , y, 80 );
127
- r (9 , y, 1 ); r (60 , y, 1 ); r (65 , y, 1 );
128
- R (14 , y, 3 ); R (21 , y, 1 ); R (29 , y, 6 ); R (42 , y, 6 ); R (54 , y, 1 ); R (58 , y, 2 ); R (69 , y, 2 );
129
- y++;
130
-
131
- b (0 , y, 80 );
132
- r (9 , y, 1 ); r (31 , y, 1 ); r (44 , y, 1 ); r (58 , y, 1 ); r (64 , y, 1 );
133
- R (15 , y, 3 ); R (21 , y, 1 ); R (32 , y, 4 ); R (45 , y, 4 ); R (54 , y, 1 ); R (59 , y, 2 ); R (69 , y, 2 );
134
- y++;
135
-
136
- b (0 , y, 80 );
137
- r (9 , y, 1 ); r (33 , y, 1 ); r (46 , y, 1 ); r (61 , y, 1 ); r (64 , y, 1 );
138
- R (16 , y, 3 ); R (21 , y, 1 ); R (34 , y, 2 ); R (47 , y, 2 ); R (54 , y, 1 ); R (59 , y, 2 ); R (69 , y, 2 );
139
- y++;
140
-
141
- b (0 , y, 80 );
142
- r (9 , y, 1 ); r (16 , y, 4 ); r (36 , y, 1 ); r (49 , y, 1 ); r (59 , y, 1 ); r (63 , y, 1 );
143
- R (17 , y, 2 ); R (21 , y, 1 ); R (34 , y, 2 ); R (47 , y, 2 ); R (54 , y, 1 ); R (60 , y, 2 ); R (69 , y, 2 );
144
- y++;
145
-
146
- b (0 , y, 80 );
147
- r (9 , y, 1 ); r (17 , y, 4 ); r (26 , y, 1 ); r (36 , y, 1 ); r (39 , y, 1 ); r (49 , y, 1 );
148
- R (18 , y, 2 ); R (21 , y, 1 ); R (35 , y, 1 ); R (48 , y, 1 ); R (54 , y, 1 ); R (60 , y, 2 ); R (63 , y, 1 ); R (69 , y, 2 );
149
- y++;
150
-
151
- b (0 , y, 80 );
152
- r (26 , y, 2 ); r (39 , y, 2 ); r (63 , y, 1 );
153
- R (9 , y, 1 ); R (18 , y, 4 ); R (35 , y, 1 ); R (48 , y, 1 ); R (54 , y, 1 ); R (60 , y, 3 ); R (69 , y, 2 );
154
- y++;
155
-
156
- b (0 , y, 80 );
157
- r (34 , y, 1 ); r (47 , y, 1 ); r (60 , y, 1 );
158
- R (9 , y, 1 ); R (19 , y, 3 ); R (26 , y, 2 ); R (35 , y, 1 ); R (39 , y, 2 ); R (48 , y, 1 ); R (54 , y, 1 ); R (61 , y, 2 ); R (69 , y, 2 );
159
- y++;
160
-
161
- b (0 , y, 80 );
162
- r (8 , y, 1 ); r (35 , y, 1 ); r (48 , y, 1 ); r (62 , y, 1 ); r (71 , y, 1 );
163
- R (9 , y, 1 ); R (20 , y, 2 ); R (26 , y, 3 ); R (34 , y, 1 ); R (39 , y, 3 ); R (47 , y, 1 ); R (54 , y, 1 ); R (61 , y, 1 ); R (69 , y, 2 );
164
- y++;
165
-
166
- b (0 , y, 80 );
167
- r (11 , y, 1 ); r (26 , y, 1 ); r (28 , y, 5 ); r (39 , y, 1 ); r (41 , y, 5 ); r (51 , y, 7 ); r (61 , y, 1 ); r (66 , y, 8 );
168
- R (7 , y, 4 ); R (21 , y, 1 ); R (29 , y, 1 ); R (33 , y, 1 ); R (42 , y, 1 ); R (46 , y, 1 ); R (52 , y, 5 ); R (67 , y, 7 );
169
- y++;
170
-
171
- b (0 , y, 80 );
172
- y++;
173
-
174
- b (0 , y, 80 );
175
- y++;
176
28
}
0 commit comments