scriptlike 0.6.0

Utility to aid in script-like programs.

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


Utility to aid in writing script-like programs in the D Programming Language.

This library has no external dependencies.

Since this is intended for script-like programs, the focus is on making such scripts easier and more convenient to write. Optimal performance is secondary to that goal (most scripts are more IO-bound or process-bound anyway), so when necessary this library may accept minor internal inefficiencies for the sake of the primary goal. That said, this IS the D Programming Language, so things aren't exactly likely to be slow overall anyway.

Tested with DMD 2.064.2 and 2.065.


* A thin wrapper over [std.path]( and [std.file]( that provides a dedicated Path type specifically designed for managing file paths in a simple, reliable, cross-platform way. No more dealing with slashes, paths-with-spaces, calling [buildPath](, [normalizing](, or getting paths mixed up with ordinary strings.
* Optionally enable automatic command echoing (including shell commands, changing/creating directories and deleting/copying/moving/linking/renaming both directories and files) by setting one simple flag: [bool scriptlikeTraceCommands](
* Most typical Phobos modules automatically imported. Who needs rows and rows of standard lib imports for a mere script?
* Less-pedantic filesystem operations for when you don't care whether it exists or not: [existsAsFile](, [existsAsDir](, [existsAsSymlink](, [tryRename](, [trySymlink](, [tryCopy](, [tryMkdir](, [tryMkdirRecurse](, [tryRmdir](, [tryRmdirRecurse](, [tryRemove]( All check whether the source path exists and return WITHOUT throwing if there's nothing to do.
* One simple call, [run](, to run a shell command script-style (ie, synchronously with forwarded stdout/in/err) from any working directory. (Also automatically works around DMD [#10863]( without waiting for v2.066.)
* [run]( automatically throws if a process exits with a non-zero exit code. Or use [tryRun]( to ignore or handle the error level yourself.
* One simple function, [fail(string msg)](, to help you exit with an error message in an exception-safe way. (No longer requires any boilerplate in your main()!)
* [More to come!](
  • Nick Sabalausky
0.10.3 2019-Jul-15
0.10.2 2017-Mar-03
0.10.1 2017-Feb-26
0.10.0 2017-Feb-26
0.9.7 2017-Feb-23
Show all 21 versions
Download Stats:
  • 0 downloads today

  • 24 downloads this week

  • 223 downloads this month

  • 12549 downloads total

Short URL: