-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCacheCommand.cs
More file actions
36 lines (32 loc) · 1.27 KB
/
Copy pathCacheCommand.cs
File metadata and controls
36 lines (32 loc) · 1.27 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
using GitAgent.Services;
using Microsoft.Extensions.DependencyInjection;
using System.CommandLine;
using System.CommandLine.Hosting;
namespace GitAgent.Commands
{
internal class CacheCommand
{
public static Command BuildCacheCommand()
{
var cacheCmd = new Command("cache", "Manage HTTP response cache");
var cacheClearCmd = new Command("clear", "Clear all cached HTTP responses");
cacheClearCmd.SetHandler(async context =>
{
var host = context.GetHost();
var cachingHandler = host.Services.GetRequiredService<CachingHttpHandler>();
cachingHandler.ClearCache();
await Console.Out.WriteLineAsync("HTTP cache cleared.");
});
cacheCmd.AddCommand(cacheClearCmd);
var cachePathCmd = new Command("path", "Show cache directory path");
cachePathCmd.SetHandler(async context =>
{
var host = context.GetHost();
var cachingHandler = host.Services.GetRequiredService<CachingHttpHandler>();
await Console.Out.WriteLineAsync(cachingHandler.CacheDirectory);
});
cacheCmd.AddCommand(cachePathCmd);
return cacheCmd;
}
}
}