|
|
|
|
|
|
|
import std.stdio;
|
|
|
|
import std.array : split;
|
|
|
|
import std.string : strip;
|
|
|
|
|
|
|
|
import extra;
|
|
|
|
|
|
|
|
auto getMenu ()
|
|
|
|
{
|
|
|
|
auto foods = import ("food.txt").strip.split ("\n");
|
|
|
|
return foods;
|
|
|
|
}
|
|
|
|
|
|
|
|
auto getPeople ()
|
|
|
|
{
|
|
|
|
return import ("people.txt").strip.split ("\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
void main (string[] args)
|
|
|
|
{
|
|
|
|
import std.array : join;
|
|
|
|
import core.stdc.stdlib : exit;
|
|
|
|
|
|
|
|
immutable request = args[1];
|
|
|
|
if (request == "menu") {
|
|
|
|
version (No_Menu) {
|
|
|
|
} else {
|
|
|
|
writeln ("On the menu: ", getMenu.join (", "));
|
|
|
|
exit (0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
version (With_People) {
|
|
|
|
if (request == "people") {
|
|
|
|
writeln ("People: ", getPeople.join (", "));
|
|
|
|
|
|
|
|
// only exit successfully if the second module also had its module version set.
|
|
|
|
// this checks for issue https://github.com/mesonbuild/meson/issues/3337
|
|
|
|
if (secondModulePeopleVersionSet ())
|
|
|
|
exit (0);
|
|
|
|
exit (1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
version (With_VersionInteger)
|
|
|
|
version(3) exit(0);
|
|
|
|
|
|
|
|
version (With_Debug)
|
|
|
|
debug exit(0);
|
|
|
|
|
|
|
|
version (With_DebugInteger)
|
|
|
|
debug(3) exit(0);
|
|
|
|
|
|
|
|
version (With_DebugIdentifier)
|
|
|
|
debug(DebugIdentifier) exit(0);
|
|
|
|
|
|
|
|
version (With_DebugAll) {
|
|
|
|
int dbg = 0;
|
|
|
|
debug dbg++;
|
|
|
|
debug(2) dbg++;
|
|
|
|
debug(3) dbg++;
|
|
|
|
debug(4) dbg++;
|
|
|
|
debug(DebugIdentifier) dbg++;
|
|
|
|
|
|
|
|
if (dbg == 5)
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
// we fail here
|
|
|
|
exit (1);
|
|
|
|
}
|
|
|
|
|
|
|
|
unittest
|
|
|
|
{
|
|
|
|
writeln ("TEST");
|
|
|
|
import core.stdc.stdlib : exit;
|
|
|
|
|
|
|
|
writeln(getMenu);
|
|
|
|
assert (getMenu () == ["Spam", "Eggs", "Spam", "Baked Beans", "Spam", "Spam"]);
|
|
|
|
|
|
|
|
exit (0);
|
|
|
|
}
|