Skip to content

Commit 6f7f188

Browse files
committed
Substitute and glob expand quoted scp paths in NoVagrant mode
1 parent 194c9c8 commit 6f7f188

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

create_dmd_release/build_all.d

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,12 @@ struct Box
137137
{
138138
if (src.startsWith("default:"))
139139
src = _tmpdir ~ "/" ~ src[8..$];
140+
else if (src.startsWith("'default:"))
141+
src = globExpand(_tmpdir, src[9..$-1]);
140142
if (tgt.startsWith("default:"))
141143
tgt = _tmpdir ~ "/" ~ tgt[8..$];
144+
else if (tgt.startsWith("'default:"))
145+
tgt = globExpand(_tmpdir, tgt[9..$-1]);
142146

143147
string[] srcs = split(src, " ");
144148
foreach(s; srcs)
@@ -157,6 +161,27 @@ struct Box
157161
}
158162

159163
private:
164+
string globExpand(string basePath, string glob)
165+
{
166+
string[] paths = [basePath];
167+
168+
// For each pattern get the directory entries that match the pattern
169+
foreach (pattern; glob.split(dirSeparator).filter!(n => n != ""))
170+
{
171+
string[] matches;
172+
foreach (path; paths)
173+
{
174+
foreach (entry; dirEntries(path, SpanMode.shallow).map!(n => n.name))
175+
{
176+
if (globMatch(baseName(entry), pattern))
177+
matches ~= entry;
178+
}
179+
}
180+
paths = matches;
181+
}
182+
return paths.join(" ");
183+
}
184+
160185
@property string vagrantFile()
161186
{
162187
auto res =

0 commit comments

Comments
 (0)