Module changelog

Scriptlike Changelog

The latest version of this changelog is always available at:

(Dates below are YYYY/MM/DD)

v0.9.4 - 2015/09/22

  • Fixed: Previous release broke the unittest script when dub test support was added.
  • Fixed: In echo mode, several functions would echo the wrong "try*" or non-"try*" version. Ex: run echoed tryRun, and tryRename echoed rename.
  • Fixed: Path and buildNormalizedPathFixed now convert back/forward slashes to native on BOTH Windows and Posix, not just on Windows.
  • Fixed: Some links within changelog and API reference were pointing to the reference docs for Scriptlike's latest version, instead of staying within the same documentation version. This made archived docs for previous versions difficult to navigate.
  • Enhancement: #17,#20: Added usage examples to readme.
  • Enhancement: Add interp for interpolated strings:
    string s = mixin( interp!"Value is ${variableOrExpression}" )
  • Enhancement: Add removePath/tryRemovePath for deleting a path regardless of whether it's a file or directory. (Calls remove for files and rmdirRecurse for directories.)
  • Enhancement: Add a Path-accepting overload of escapeShellArg for the sake of generic code.
  • Enhancement: When runCollect throws, the ErrorLevelException now includes and displays the command's output (otherwise there'd be no way to inspect the command's output for diagnostic purposes).
  • Enhancement: Greatly extended and improved set of tests.

v0.9.3 - 2015/08/19

  • Fixed: #16: Access to standard Phobos function hampered.
  • Enhancement: Support running unittests through DUB: dub test
  • Enhancement: Uses for continuous integration testing.

v0.9.2 - 2015/07/10

  • Fixed: Properly flush all command echoing output (ie, in yap and yapFunc).
  • Enhancement: Add a "no-build" configuration for projects that need to import/depend on Scriptlike through DUB, but use their own buildsystem.

v0.9.1 - 2015/06/28

  • Fixed: Fails to compile unless the makedocs script has been run.

v0.9.0 - 2015/06/27

v0.8.1 - 2015/06/22

  • Enhancement: New overload for userInput to allow type inference:
    void userInput(T=string)(string question, ref T result); (suggestion from Per Nordlöw).

v0.8.0 - 2015/06/13

  • Change: Minimum officially supported DMD increased from v2.064.2 to v2.066.0. Versions below v2.066.0 may still work, but there will now be certain problems when dealing with paths that contain spaces, particularly on Windows.
  • Change: Removed unnecessary non-Path wrappers around std.file/std.path. Things not wrapped (like dirSeparator and SpanMode) are now selective public imports instead of aliases. These changes should reduce issues with symbol conflicts.
  • Change: API reference now built using ddox and uses much improved styling (actually uses a stylesheet now).
  • Change: Eliminate remnants of the "planned but never enabled" wstring/dstring versions of Path/Ext/Args. There turned out not to be much need for them, and even std.file doesn't support wstring/dstring either.
  • Change: Put output binaries in "bin" subdirectory, instead of Scriptlike's root.
  • Enhancement: Add module scriptlike.only to import all of scriptlike, but omit the helper Phobos imports in scriptlike.std.
  • Enhancement: fail now accepts an arbitrary list of args of any type, just like writeln,
  • Enhancement: Added failEnforce, like Phobos's enforce, but for fail.
  • Enhancement: Added runCollect and tryRunCollect, to capture a command's output instead of displaying it.
  • Enhancement: Added pause to pause and prompt the user to press Enter.
  • Enhancement: echoCommand is no longer private.
  • Enhancement: Added Path-based wrappers for std.file's getcwd, thisExePath and tempDir.
  • Fixed: No longer uses Phobos's deprecated system function.

v0.7.0 - 2015/04/02

v0.6.0 - 2014/02/16

  • Change: Path and Ext are now aliases for the UTF-8 instantiations, and the template structs are now named PathT and ExtT.
  • Change: Removed path() and ext() helper functions to free up useful names from the namespace, since they are no longer needed. Use Path() and Ext() instead.
  • Change: Internally split into separate modules, but uses package.d to preserve import scriptlike;.
  • Change: Rename escapeShellPath -> escapeShellArg.
  • Change: Rename runShell -> tryRun. Temporarily keep runShell as an alias.
  • Change: Rename scriptlikeTraceCommands -> scriptlikeEcho. Temporarily keep scriptlikeTraceCommands as an alias.
  • Enhancement: Added scripts to run unittests and build API docs.
  • Enhancement: Added Path.opCast and Ext.opCast for converting to bool.
  • Enhancement: fail no longer requires any boilerplate in main(). (Newsgroup link)
  • Enhancement: Added run to run a shell command like tryRun, but automatically throw if the process returns a non-zero error level.
  • Enhancement: #2: Optional callback sink for command echoing: scriptlikeCustomEcho.
  • Enhancement: #8: Dry run support via bool scriptlikeDryRun.
  • Enhancement: #13: Added ArgsT (and Args helper alias) to safely build command strings from parts.
  • Enhancement: Added this changelog.
  • Fixed: Path(null) and Ext(null) were automatically changed to empty string.
  • Fixed: #10: Docs should include all OS-specific functions.

v0.5.0 - 2014/02/11

  • Initial release.


Nick Sabalausky, Jesse Phillips


Copyright (C) 2014-2015 Nick Sabalausky. Portions Copyright (C) 2010 Jesse Phillips.