local o, e = os.outputof(cmd, streams)
Where streams could be one of
- "output" Only return standard output stream content
- "error" Only return standard error stream content
- "both" (default) Return both streams content
Hides the automated tests that require calls out to the network behind a new `--test-all` flag. Allows for faster TDD iterations for new development, and tests can now be run even when offline.
This is a squashed and rebased version of #1384, authored by @tempura-sukiyaki. Changes the deferred join path delimiter to a non-printable character to avoid conflicts with the pipe symbol in paths.
prior to this change, paths that begin with ${ } were sometimes assumed to
be either absolute or relative. new functions have been added in order
to reduce the number of systems that can break.
new functions are
path:absolutetype -> similair to isabsolute but can return an unknown or maybe result
path:deferredjoin -> similair to path:join but creates a string for unknown absolute
paths which we except to be generated at bake time
path:hasdeferredjoin -> predicate to determine if a path needs to be evaled for
a deferred join
path:resolvedeferredjoin -> resolves a deferredjoin path to an actual path
this is to be called after any %{} replacements occur.
right now all api path types use the deferredjoin code path and
detoken, solution:makerelative and project:makerelative have been updated
to use resolvedeferredjoin.
unit tests have been created to test the four new path functions.
added unit tests
this is for marking cmd options as paths relative to the
projects base dir. decorated paths can use tokens / macros
decorated paths are wrapped with "". Final slashes are
honored. Slashes are platform specific.
Note that the working dir for custom cmd is undefined as
the current working dir will be different between xcode (wks.location)
and visual studio / make (prj.location.) Changing the CWD isn't
a good default behavior (for reasons.) This leads to prior
use of premake requiring alot of string concating / function calls
for path translations which make the cmd line difficult to read and maintain.
With path decorations, one can just make those relative paths with %[]
and everything should work.