-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathNginxOutput.cpp
More file actions
126 lines (109 loc) · 3.33 KB
/
Copy pathNginxOutput.cpp
File metadata and controls
126 lines (109 loc) · 3.33 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/**
*
* @file NginxOutput.cpp
* @author Gaspard Kirira
*
* Copyright 2026, Gaspard Kirira. All rights reserved.
* https://github.com/vixcpp/vix
* Use of this source code is governed by a MIT license
* that can be found in the License file.
*
* Vix.cpp
*/
#include <vix/cli/commands/proxy/NginxOutput.hpp>
#include <vix/cli/util/Ui.hpp>
#include <iostream>
#include <ostream>
#include <string>
namespace vix::commands::proxy::nginx_output
{
namespace
{
std::string yes_no(bool value)
{
return value ? "yes" : "no";
}
std::string enabled_disabled(bool value)
{
return value ? "enabled" : "disabled";
}
std::string websocket_value(const NginxProxyConfig &cfg)
{
if (!cfg.websocketEnabled)
return "disabled";
return "127.0.0.1:" +
std::to_string(cfg.websocketPort) +
" " +
cfg.websocketPath;
}
std::string tls_value(const NginxProxyConfig &cfg)
{
return cfg.tlsEnabled ? "enabled" : "disabled";
}
}
void print_init_summary(
std::ostream &out,
const NginxProxyConfig &cfg)
{
vix::cli::util::section(out, "Proxy Init");
vix::cli::util::kv(out, "App", cfg.appName);
vix::cli::util::kv(out, "Domain", cfg.domain.empty() ? "(missing)" : cfg.domain);
vix::cli::util::kv(out, "HTTP", "127.0.0.1:" + std::to_string(cfg.httpPort));
vix::cli::util::kv(out, "WebSocket", websocket_value(cfg));
vix::cli::util::kv(out, "TLS", tls_value(cfg));
vix::cli::util::kv(out, "Site file", cfg.sitesAvailablePath.string());
vix::cli::util::kv(out, "Enabled path", cfg.sitesEnabledPath.string());
if (cfg.tlsEnabled)
{
vix::cli::util::kv(out, "Certificate", cfg.certificatePath.string());
vix::cli::util::kv(out, "Certificate key", cfg.certificateKeyPath.string());
}
}
void print_check_summary(
std::ostream &out,
const NginxProxyConfig &cfg,
bool enabled)
{
vix::cli::util::section(out, "Proxy Check");
vix::cli::util::kv(out, "App", cfg.appName);
vix::cli::util::kv(out, "Domain", cfg.domain.empty() ? "(missing)" : cfg.domain);
vix::cli::util::kv(out, "HTTP upstream", "127.0.0.1:" + std::to_string(cfg.httpPort));
vix::cli::util::kv(out, "WS upstream", websocket_value(cfg));
vix::cli::util::kv(out, "TLS", enabled_disabled(cfg.tlsEnabled));
vix::cli::util::kv(out, "Site file", cfg.sitesAvailablePath.string());
vix::cli::util::kv(out, "Enabled", yes_no(enabled));
}
void print_reload_summary(
std::ostream &out,
const NginxProxyConfig &cfg)
{
vix::cli::util::section(out, "Proxy Reload");
vix::cli::util::kv(out, "App", cfg.appName);
vix::cli::util::kv(out, "Domain", cfg.domain.empty() ? "(missing)" : cfg.domain);
vix::cli::util::kv(out, "Site file", cfg.sitesAvailablePath.string());
}
void ok(
std::ostream &out,
const std::string &message)
{
vix::cli::util::ok_line(out, message);
}
void warn(
std::ostream &out,
const std::string &message)
{
vix::cli::util::warn_line(out, message);
}
void error(
std::ostream &out,
const std::string &message)
{
vix::cli::util::err_line(out, message);
}
void fix(
std::ostream &out,
const std::string &command)
{
vix::cli::util::warn_line(out, "Fix: " + command);
}
}