Skip to content

Commit 7557411

Browse files
committed
Improve startup log
- re-arrange; app log before vibe log - always resolve paths to normalized absolute ones
1 parent cf4f6d6 commit 7557411

File tree

2 files changed

+31
-17
lines changed

2 files changed

+31
-17
lines changed

source/reloadedvibes/app.d

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
+/
99
module reloadedvibes.app;
1010

11-
import std.algorithm : each;
11+
import std.algorithm : each, map;
1212
import std.datetime : dur;
1313
import std.file : exists, isDir;
1414
import std.getopt;
15-
import std.path : absolutePath;
15+
import std.path : absolutePath, buildNormalizedPath;
1616
import std.stdio : stdout, stderr;
1717

1818
import vibe.core.core : runTask, sleep;
@@ -91,14 +91,18 @@ int main(string[] args)
9191
Watcher watcher;
9292
Socket webserver;
9393
HTTPListener[] listeners;
94+
void delegate()[] doInit;
9495

9596
// -- Watcher
9697
if (optWatchDirectories.length == 0)
9798
{
9899
stderr.writeln("No directory to watch specified, use --watch to pass one");
99100
return 1;
100101
}
101-
watcher = new Watcher(optWatchDirectories);
102+
103+
auto watchDirectories = optWatchDirectories.map!(x => x.absolutePath.buildNormalizedPath());
104+
105+
watcher = new Watcher(watchDirectories);
102106

103107
// -- Service
104108
if (!optDisableService)
@@ -109,7 +113,7 @@ int main(string[] args)
109113
return 1;
110114
}
111115

112-
listeners ~= registerService(service, watcher);
116+
doInit ~= { listeners ~= registerService(service, watcher); };
113117
}
114118
else
115119
{
@@ -123,17 +127,19 @@ int main(string[] args)
123127
// Initial execution
124128
// Since the action is usually some preprocessor or something,
125129
// it should also get executed on application launch
126-
awcl.notify();
130+
doInit ~= { awcl.notify(); };
127131

128132
if (optDisableService)
129133
{
130-
runTask(delegate() @trusted {
131-
while (true)
132-
{
133-
awcl.query();
134-
sleep(dur!"msecs"(500));
135-
}
136-
});
134+
doInit ~= {
135+
runTask(delegate() @trusted {
136+
while (true)
137+
{
138+
awcl.query();
139+
sleep(dur!"msecs"(500));
140+
}
141+
});
142+
};
137143
}
138144
}
139145

@@ -158,21 +164,27 @@ int main(string[] args)
158164
return 1;
159165
}
160166

167+
optDocumentRootWebServer = optDocumentRootWebServer.absolutePath.buildNormalizedPath();
168+
161169
if (optNoInjectWebServer)
162170
{
163-
listeners ~= registerStaticWebserver(webserver, optDocumentRootWebServer);
171+
doInit ~= {
172+
listeners ~= registerStaticWebserver(webserver, optDocumentRootWebServer);
173+
};
164174
}
165175
else
166176
{
167-
listeners ~= registerStaticWebserver(webserver, optDocumentRootWebServer, service);
177+
doInit ~= {
178+
listeners ~= registerStaticWebserver(webserver, optDocumentRootWebServer, service);
179+
};
168180
}
169181
}
170182

171183
// -- Print info
172184

173185
stdout.writeln(appName, "\n");
174186

175-
optWatchDirectories.each!(dir => stdout.writeln("Watching: ", dir));
187+
watchDirectories.each!(dir => stdout.writeln("Watching: ", dir));
176188

177189
if (!optDisableService)
178190
{
@@ -185,7 +197,7 @@ int main(string[] args)
185197
// dfmt off
186198
stdout.writeln();
187199
stdout.writeln("Built-in webserver: http://", webserver.toString);
188-
stdout.writeln("Serving: ", optDocumentRootWebServer.absolutePath);
200+
stdout.writeln("Serving: ", optDocumentRootWebServer);
189201
stdout.writeln("Script injection: ", ((optNoInjectWebServer) ? "disabled" : "enabled"));
190202
// dfmt on
191203
}
@@ -196,6 +208,7 @@ int main(string[] args)
196208
stdout.writeln();
197209

198210
// -- Run
211+
doInit.each!(x => x());
199212
run(listeners);
200213
return 0;
201214
}

source/reloadedvibes/watcher.d

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
module reloadedvibes.watcher;
1010

1111
import std.algorithm : remove;
12+
import std.range : isInputRange;
1213
import fswatch;
1314

1415
final class Watcher
@@ -19,7 +20,7 @@ final class Watcher
1920
WatcherClient[] _cs = [];
2021
}
2122

22-
public this(string[] directories)
23+
public this(Range)(Range directories) if (isInputRange!Range)
2324
{
2425
foreach (dir; directories)
2526
{

0 commit comments

Comments
 (0)