mirror of
https://github.com/nsnail/NetAdmin.git
synced 2025-06-20 18:58:16 +08:00
build: 📦 新的解决方案文件格式 slnx 支持来了
This commit is contained in:
87
scripts/sync.slnx.files.csx
Normal file
87
scripts/sync.slnx.files.csx
Normal file
@ -0,0 +1,87 @@
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
var slnxFile = Directory.GetFiles(@"../", "*.slnx").First();
|
||||
var content = File.ReadAllText(slnxFile);
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"<Folder Name=\"/meta/\">(?:.|\n)*?</Folder>",
|
||||
$$"""
|
||||
<Folder Name="/meta/">
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../", "*").Where(x => !x.EndsWith(".slnx") && !x.EndsWith(".user"))
|
||||
.Select(x=>$" <File Path=\"{Path.GetFileName(x)}\"/>")
|
||||
)}}
|
||||
</Folder>
|
||||
"""
|
||||
);
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"<Folder Name=\"/docker/\">(?:.|\n)*?</Folder>",
|
||||
$$"""
|
||||
<Folder Name="/docker/">
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../docker", "*")
|
||||
.Select(x=>$" <File Path=\"docker/{Path.GetFileName(x)}\"/>")
|
||||
)}}
|
||||
</Folder>
|
||||
"""
|
||||
);
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"<Folder Name=\"/.github/workflows/\">(?:.|\n)*?</Folder>",
|
||||
$$"""
|
||||
<Folder Name="/.github/workflows/">
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../.github/workflows", "*")
|
||||
.Select(x=>$" <File Path=\".github/workflows/{Path.GetFileName(x)}\"/>")
|
||||
)}}
|
||||
</Folder>
|
||||
"""
|
||||
);
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"<Folder Name=\"/.drone/workflows/\">(?:.|\n)*?</Folder>",
|
||||
$$"""
|
||||
<Folder Name="/.drone/workflows/">
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../.drone/workflows", "*")
|
||||
.Select(x=>$" <File Path=\".drone/workflows/{Path.GetFileName(x)}\"/>")
|
||||
)}}
|
||||
</Folder>
|
||||
"""
|
||||
);
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"<Folder Name=\"/scripts/\">(?:.|\n)*?</Folder>",
|
||||
$$"""
|
||||
<Folder Name="/scripts/">
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../scripts", "*")
|
||||
.Select(x=>$" <File Path=\"scripts/{Path.GetFileName(x)}\"/>")
|
||||
)}}
|
||||
</Folder>
|
||||
"""
|
||||
);
|
||||
|
||||
|
||||
|
||||
content = Regex.Replace(
|
||||
content,
|
||||
"<Folder Name=\"/build/\">(?:.|\n)*?</Folder>",
|
||||
$$"""
|
||||
<Folder Name="/build/">
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../build", "*")
|
||||
.Select(x=>$" <File Path=\"build/{Path.GetFileName(x)}\"/>")
|
||||
)}}
|
||||
</Folder>
|
||||
"""
|
||||
);
|
||||
|
||||
Console.WriteLine(content);
|
||||
File.WriteAllText(slnxFile, content);
|
Reference in New Issue
Block a user