Path Functions
Overview
The path functions operate on file system paths expressed as strings. Unless stated the path format is always a portable representation using forward slashes (“/”) rather than back slashes (“\”).
Functions
absolute
function absolute( path, working_directory )
Convert a path into an absolute path.
Converts path
into an absolute path by prepending working_directory
or the
current working directory if working_directory
is not specified. If path
is already absolute then it is returned unchanged.
Parameters:
path
a relative path to make absolute- (optional)
working_directory
the path thatpath
is relative to
Returns:
The relative path path
expressed as an absolute path or path
itself if it was already absolute.
basename
function basename( path )
Get the basename of a path.
Extract the basename from path
(everything except for the extension of which
the dot “.” is considered part, i.e. the dot “.” is not returned as part of
the basename).
Parameters:
path
the path to extract the basename from
Returns:
The basename of path
.
branch
function branch( path )
Get the branch portion of a path.
The branch portion of a path is all elements excluding the last, right-most element.
Parameters:
path
the path to extract the branch portion from
Returns:
Returns a path corresponding to path
with last element removed.
extension
function extension( path )
Get the extension from a path.
Extract the extension portion of path
(including the period “.”). If there is no period in path
then returns the empty string. Multiple dots will return the right-most period and trailing characters. A trailing period will return the string “.”.
Parameters:
path
the path to extract the extension from
Returns:
The extension portion of path
including the leading period “.”.
home
function home( path )
Convert a path into an absolute path relative to the current user’s home directory.
If the optional path
parameter is omitted then the current user’s home directory is returned. If path
already specifies an absolute directory then it is returned unchanged.
Parameters:
path
the relative path to make absolute relative to the home directory
Returns:
The relative path path
expressed as an absolute path relative to the current user’s home directory.
initial
function initial( path )
Convert a path into an absolute path relative to the directory that Forge was started from.
If the optional path
parameter is omitted then the initial directory is returned. If path
already specifies an absolute directory then it is returned unchanged.
Parameters:
path
the relative path to make absolute relative to the initial directory
Returns:
The relative path path
expressed as an absolute path relative to the initial directory.
is_absolute
function is_absolute( path )
Is a path absolute?
Paths that start with a leading slash or drive specifier (e.g. “C:”, “D:”, etc on Windows) are considered to be absolute. All other paths are considered relative.
Parameters:
path
the path to check for being absolute or not
Returns:
True if path
is absolute otherwise false.
is_relative
function is_relative( path )
Is a path relative?
Paths that start with a leading slash or drive specifier (e.g. “C:”, “D:”, etc on Windows) are considered to be absolute. All other paths are considered relative.
Parameters:
path
the path to check for being relative or not
Returns:
True if path
is relative otherwise false.
leaf
function leaf( path )
Get the leaf portion of a path.
The leaf portion of a path is the last element.
Parameters:
path
the path to extract the leaf portion from
Returns:
Returns the last element of path
lower
function lower( value )
Convert a string to lower case.
Parameters:
value
the string to convert to lower case
Returns:
The string value
converted to lower case.
native
function native( path )
Convert a path to its native form.
This converts paths to use back slashes (“\”) on Windows. Paths on Linux and macOS match their portable forms using forward slashes (“/”) and are returned unchanged.
Parameters:
path
the path to convert to native form
Returns:
The path specified by path
converted to native form.
relative
function relative( path, working_directory )
Convert a path to be relative to another.
Convert path
to be relative to working_directory
or relative to the current working directory if working_directory
is nil or not specified. If path
is already relative then it is returned unchanged.
Parameters:
path
the absolute path to convert to a relative path- (optional)
working_directory
the path to convertpath
to be relative to
Returns:
The absolute path path
expressed relative to working_directory
or the current working directory if working_directory
is nil or not specified.
root
function root( path )
Convert a path into an absolute path relative to the root directory.
Converts path
to be relative to the root directory. That is the directory containing the root build script, forge.lua, that was found when searching up from the initial directory when forge
was started.
If the optional path
parameter is omitted then the initial directory is returned. If path
already specifies an absolute directory then it is returned unchanged.
Parameters:
path
the relative path to make absolute relative to the root directory
Returns:
The relative path path
expressed as an absolute path relative to the root directory.
upper
function upper( value )
Convert a string to upper case.
Parameters:
value
the string to convert to upper case
Returns:
The string value
converted to upper case.