Full path to a plugin file.
The name of the plugin, based on its filename.
{
version(Posix) enum filename = "plugins/oneliners.d";
else /*version(Windows)*/ enum filename = "plugins\\oneliners.d";
immutable expected = "oneliners";
immutable actual = pluginNameOfFilename(filename);
assert((expected == actual), actual);
}
{
version(Posix) enum filename = "plugins/twitch/package.d";
else /*version(Windows)*/ enum filename = "plugins\\twitch\\package.d";
immutable expected = "twitch";
immutable actual = pluginNameOfFilename(filename);
assert((expected == actual), actual);
}
{
version(Posix) enum filename = "plugins/counters.d";
else /*version(Windows)*/ enum filename = "plugins\\counters.d";
immutable expected = "counters";
immutable actual = pluginNameOfFilename(filename);
assert((expected == actual), actual);
}
Returns the name of a plugin based on its filename.
This is preferred over slicing std.path.baseName because some plugins are nested in their own directories. The basename of plugins/twitch/base.d is base.d, much like that of plugins/printer/base.d is.
With this we get twitch and printer instead, while still getting oneliners.