MIT licensed by Albert Krewinkel
Maintained by Albert Krewinkel
This version can be pinned in stack with:hslua-module-path-1.1.1@sha256:844f644b9cd29d63642860b547eb17c78f501d8cb4c6363d57605348415b10f4,2728

Module documentation for 1.1.1

hslua-module-path

GitHub CI Hackage Stackage Lts Stackage Nightly MIT license

Lua module to work with file paths.

path

Module for file path manipulations.

separator

The character that separates directories.

search_path_separator

The character that is used to separate the entries in the PATH environment variable.

Functions

directory (filepath)

Get the directory name; move up one level.

Parameters:

filepath
path (string)

Returns:

  • The filepath up to the last directory separator. (string)

filename (filepath)

Get the file name.

Parameters:

filepath
path (string)

Returns:

  • File name part of the input path. (string)

is_absolute (filepath)

Checks whether a path is absolute, i.e. not fixed to a root.

Parameters:

filepath
path (string)

Returns:

  • true iff filepath is an absolute path, false otherwise. (boolean)

is_relative (filepath)

Checks whether a path is relative or fixed to a root.

Parameters:

filepath
path (string)

Returns:

  • true iff filepath is a relative path, false otherwise. (boolean)

join (filepaths)

Join path elements back together by the directory separator.

Parameters:

filepaths
path components (list of strings)

Returns:

  • The joined path. (string)

make_relative (path, root, unsafe)

Contract a filename, based on a relative path. Note that the resulting path will never introduce .. paths, as the presence of symlinks means ../b may not reach a/b if it starts from a/c. For a worked example see this blog post.

Parameters:

path
path to be made relative (string)

root
root path (string)

unsafe
whether to allow .. in the result. (boolean)

Returns:

  • contracted filename (string)

normalize (filepath)

Normalizes a path.

  • // outside of the drive can be made blank
  • / becomes the path.separator
  • ./ -> ’’
  • an empty path becomes .

Parameters:

filepath
path (string)

Returns:

  • The normalized path. (string)

split (filepath)

Splits a path by the directory separator.

Parameters:

filepath
path (string)

Returns:

  • List of all path components. (list of strings)

split_extension (filepath)

Splits the last extension from a file path and returns the parts. The extension, if present, includes the leading separator; if the path has no extension, then the empty string is returned as the extension.

Parameters:

filepath
path (string)

Returns:

  • filepath without extension (string)

  • extension or empty string (string)

split_search_path (search_path)

Takes a string and splits it on the search_path_separator character. Blank items are ignored on Windows, and converted to . on Posix. On Windows path elements are stripped of quotes.

Parameters:

search_path
platform-specific search path (string)

Returns:

  • list of directories in search path (list of strings)

Changes

Changelog

hslua-module-paths uses PVP Versioning.

hslua-module-path-1.1.1

Released 2024-01-18.

  • Relaxed upper bound for text, and filepath, allowing text-2.1, filepath-1.5.

hslua-module-path-1.1.0

Released 2023-03-13.

  • Update to hslua-2.3; this includes the addition of type initializers to the module and type specifiers to the fields.

  • Fixed tests for make_relative on Windows.

hslua-module-path-1.0.3

Released 2022-08-19.

  • Fixed make_relative for longer base paths: Ensure that the function produces correct results in cases where the root (base) path has more components than the path that should be made relative.

hslua-module-path-1.0.2

Released 2022-02-19.

  • Adjusted package bounds, for hslua-core, hslua-marshalling, and hslua-packaging.

hslua-module-path-1.0.1

  • Bumped upper bound of hslua-core and hslua-marshalling to allow their respective version 2.1.

hslua-module-path-1.0.0

  • Updated to hslua 2.0.

hslua-module-path-0.1.0.1

Released 2021-02-06.

  • Changed minimal cabal version to 2.2.

hslua-module-path-0.1.0

Released 2021-02-02.

  • Fixed directory. This was the same as normalize.
  • Improved documentation.
  • Added more tests.

hslua-module-path-0.0.1

Released 2021-02-01.

  • Initially created.