Skip to content

Commit 4d546f1

Browse files
committed
Create directory C:\Windows\Setup\Scripts
1 parent 5fb224b commit 4d546f1

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

modifier/Script.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,18 @@ class ScriptModifier(ModifierContext context) : Modifier(context)
2626
{
2727
private int count = 0;
2828

29+
private const string ScriptsDirectory = @"C:\Windows\Setup\Scripts";
30+
31+
private bool directoryCreated = false;
32+
2933
public override void Process()
3034
{
3135
foreach (Script script in Configuration.ScriptSettings.Scripts)
3236
{
3337
if (!string.IsNullOrWhiteSpace(script.Content))
3438
{
3539
ScriptId scriptId = NewScriptId(script);
40+
CreateScriptsDirectoryOnce();
3641
WriteScriptContent(script, scriptId);
3742
CallScript(script, scriptId);
3843
}
@@ -45,7 +50,17 @@ private ScriptId NewScriptId(Script script)
4550
{
4651
string name = $"unattend-{++count:X2}";
4752
string extension = script.Type.ToString().ToLowerInvariant();
48-
return new ScriptId(@$"C:\Windows\Setup\Scripts\{name}.{extension}", name);
53+
return new ScriptId(@$"{ScriptsDirectory}\{name}.{extension}", name);
54+
}
55+
56+
private void CreateScriptsDirectoryOnce()
57+
{
58+
if (!directoryCreated)
59+
{
60+
var appender = new CommandAppender(Document, NamespaceManager, CommandConfig.Specialize);
61+
appender.ShellCommand($"mkdir {ScriptsDirectory}");
62+
directoryCreated = true;
63+
}
4964
}
5065

5166
private void WriteScriptContent(Script script, ScriptId scriptId)

0 commit comments

Comments
 (0)