forked from BeyondDimension/SteamTools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
51 lines (49 loc) · 1.64 KB
/
Program.cs
File metadata and controls
51 lines (49 loc) · 1.64 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
using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
var matchEx = new[] { ".htm", ".html" };
var files = Directory.GetFiles(AppContext.BaseDirectory, "*.*", SearchOption.AllDirectories).Where(x => matchEx.Any(y => x.EndsWith(y, StringComparison.OrdinalIgnoreCase)));
if (files.Any())
{
foreach (var file in files)
{
var fileName = Path.GetFileName(file);
var source = File.ReadAllText(file);
var content = source;
content = Regex.Replace(content, @"\n|\t", " ");
content = Regex.Replace(content, @">\s+<", "><").Trim();
content = Regex.Replace(content, @"\s{2,}", " ");
var span = content.AsSpan();
var umiVerIndex = span.IndexOf("<script> //! umi version:");
if (umiVerIndex > 0)
{
var umiVerAfterStr = span[umiVerIndex..];
var scriptEnd = "</script>";
var umiVerIndexLast = umiVerAfterStr.IndexOf(scriptEnd);
if (umiVerIndexLast < 0)
{
Console.WriteLine("Invalid file, fileName: {fileName}");
continue;
}
else
{
content = content.Substring(0, umiVerIndex) + umiVerAfterStr[(umiVerIndexLast + scriptEnd.Length)..].ToString();
}
}
if (content != source)
{
File.WriteAllText(file, content);
Console.WriteLine($"Minify, fileName: {fileName}");
}
else
{
Console.WriteLine($"Not changed, fileName: {fileName}");
}
}
}
else
{
Console.WriteLine("File not found.");
}
Console.WriteLine("Complete.");