Skip to content

Commit 4568cf2

Browse files
expose apiPort via commndline (#1481)
Co-authored-by: Waldek Mastykarz <[email protected]>
1 parent da09a89 commit 4568cf2

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

DevProxy.Abstractions/Proxy/IProxyConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public enum ReleaseType
2020

2121
public interface IProxyConfiguration
2222
{
23-
int ApiPort { get; }
23+
int ApiPort { get; set; }
2424
bool AsSystemProxy { get; set; }
2525
string ConfigFile { get; }
2626
#pragma warning disable CA2227

DevProxy/Commands/DevProxyCommand.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ sealed class DevProxyCommand : RootCommand
1717
private WebApplication? _app;
1818

1919
internal const string PortOptionName = "--port";
20+
internal const string ApiPortOptionName = "--api-port";
2021
internal const string IpAddressOptionName = "--ip-address";
2122
internal const string LogLevelOptionName = "--log-level";
2223
internal const string RecordOptionName = "--record";
@@ -196,6 +197,12 @@ private void ConfigureCommand()
196197
HelpName = "port"
197198
};
198199

200+
var apiPortOption = new Option<int?>(ApiPortOptionName)
201+
{
202+
Description = "The port for the Dev Proxy API to listen on",
203+
HelpName = "api-port"
204+
};
205+
199206
var recordOption = new Option<bool?>(RecordOptionName)
200207
{
201208
Description = "Use this option to record all request logs"
@@ -307,6 +314,7 @@ private void ConfigureCommand()
307314

308315
var options = new List<Option>
309316
{
317+
apiPortOption,
310318
asSystemProxyOption,
311319
configFileOption,
312320
discoverOption,
@@ -350,6 +358,11 @@ private void ConfigureFromOptions(ParseResult parseResult)
350358
{
351359
_proxyConfiguration.Port = port.Value;
352360
}
361+
var apiPort = parseResult.GetValueOrDefault<int?>(ApiPortOptionName);
362+
if (apiPort is not null)
363+
{
364+
_proxyConfiguration.ApiPort = apiPort.Value;
365+
}
353366
var ipAddress = parseResult.GetValueOrDefault<string?>(IpAddressOptionName);
354367
if (ipAddress is not null)
355368
{

DevProxy/Commands/DevProxyConfigOptions.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public string? ConfigFile
1717
}
1818
}
1919

20+
public int? ApiPort => _parseResult?.GetValueOrDefault<int?>(DevProxyCommand.ApiPortOptionName);
2021
public bool Discover => _parseResult?.GetValueOrDefault<bool?>(DevProxyCommand.DiscoverOptionName) ?? false;
2122
public string? IPAddress => _parseResult?.GetValueOrDefault<string?>(DevProxyCommand.IpAddressOptionName);
2223
public LogLevel? LogLevel => _parseResult?.GetValueOrDefault<LogLevel?>(DevProxyCommand.LogLevelOptionName);
@@ -113,13 +114,16 @@ public DevProxyConfigOptions()
113114
}
114115
}
115116
};
117+
var apiPortOption = new Option<int?>(DevProxyCommand.ApiPortOptionName);
118+
116119
var discoverOption = new Option<bool>(DevProxyCommand.DiscoverOptionName, "--discover")
117120
{
118121
Arity = ArgumentArity.Zero
119122
};
120123

121124
var options = new List<Option>
122125
{
126+
apiPortOption,
123127
ipAddressOption,
124128
configFileOption,
125129
urlsToWatchOption,

DevProxy/Program.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ static WebApplication BuildApplication(DevProxyConfigOptions options)
2121
var ipAddress = options.IPAddress ??
2222
builder.Configuration.GetValue("ipAddress", defaultIpAddress) ??
2323
defaultIpAddress;
24+
var defaultApiPort = 8897;
25+
var apiPort = options.ApiPort ??
26+
builder.Configuration.GetValue("apiPort", defaultApiPort);
2427
_ = builder.WebHost.ConfigureKestrel(options =>
2528
{
26-
var apiPort = builder.Configuration.GetValue("apiPort", 8897);
2729
options.Listen(IPAddress.Parse(ipAddress), apiPort);
2830
});
2931

0 commit comments

Comments
 (0)