-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathProgram.cs
More file actions
93 lines (81 loc) · 3.23 KB
/
Program.cs
File metadata and controls
93 lines (81 loc) · 3.23 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
using Bit.SeederUtility.Commands;
using CommandDotNet;
namespace Bit.SeederUtility;
public class Program
{
private static int Main(string[] args)
{
PrintBanner();
return new AppRunner<Program>()
.Run(args);
}
private static void PrintBanner()
{
var brightGreen = "\x1b[92m";
var green = "\x1b[32m";
var brown = "\x1b[38;2;128;60;30m";
var cyan = "\x1b[36m";
var bold = "\x1b[1m";
var reset = "\x1b[0m";
// Art sections: leaves (bright green), stem (green), seed (brown)
(string Color, string Art)[] sections =
[
(brightGreen, """
..-----=====+-.
..----======+=-.
.--==+=======-.
.-===========...
.------:::... ..=+=======-...
.-=====-----:. .:=:.........
.-+=======----...:=..
.-=======+==--..=:....
..===========:=-.....
.:========+=+:..
....:----:-=:..
"""),
(green, """
..:=:.
.:=:....
..=:.
--.
"""),
(brown, """
...-======:..:-...=#####*-..
..:====--=======-=+##*******###-.
.==------=======**************###:
.==----=======+***************#####.
.:+========++*****************######-
..##************************########.
:*###*****************###########:.
..-#########***################=..
.:*######################*-..
..-=+*###########*=-.....
.................
"""),
];
var allLines = sections
.SelectMany(s => s.Art.Split('\n'))
.Where(l => !string.IsNullOrWhiteSpace(l));
var minIndent = allLines.Min(l => l.Length - l.TrimStart().Length);
foreach (var (color, art) in sections)
{
foreach (var line in art.Split('\n'))
{
if (string.IsNullOrWhiteSpace(line))
{
continue;
}
Console.Error.WriteLine($"{color}{line[minIndent..]}{reset}");
}
}
Console.Error.WriteLine($" {bold}{cyan}╔══════════════════════════════════════════╗{reset}");
Console.Error.WriteLine($" {bold}{cyan}║ SEEDER UTILITY ║{reset}");
Console.Error.WriteLine($" {bold}{cyan}╚══════════════════════════════════════════╝{reset}");
}
[Subcommand]
public OrganizationCommand Organization { get; set; } = null!;
[Subcommand]
public PresetCommand Preset { get; set; } = null!;
[Subcommand]
public IndividualCommand Individual { get; set; } = null!;
}