NAME

Sah::Schemas::Path - Schemas related to filesystem path

VERSION

This document describes version 0.016 of Sah::Schemas::Path (from Perl distribution Sah-Schemas-Path), released on 2021-07-17.

SAH SCHEMAS

  • dirname

    Filesystem directory name.

    This schema is basically string with some checks and prefilters. Why use this schema instead of plain ol' str? Mainly to give you the ability to change tilde to user's home directory, e.g. ~/foo into /home/someuser/foo. Normally this expansion is done by a Unix shell, but sometimes your program receives an unexpanded path, e.g. when you get it from some config file.

    See also more OS-specific schemas like dirname::unix, which adds some more checks (e.g. filename cannot contain forward slash and each component cannot be longer than 255 characters) and preprocessing (e.g. stripping extraneous slashes like foo//bar into foo/bar.

    What's the difference between this schema and filename? The default completion rule. This schema's completion by default only includes directories.

  • filename

    Filesystem file name.

    This schema is basically string with some checks and prefilters. Why use this schema instead of plain ol' str? Mainly to give you the ability to change tilde to user's home directory, e.g. ~/foo.txt into /home/someuser/foo.txt. Normally this expansion is done by a Unix shell, but sometimes your program receives an unexpanded path, e.g. when you get it from some config file.

    See also more OS-specific schemas like filename::unix, which adds some more checks (e.g. filename cannot contain forward slash and each component cannot be longer than 255 characters) and preprocessing (e.g. stripping extraneous slashes like foo//bar into foo/bar.

    What's the difference between this schema and dirname? The default completion rule. This schema's completion by default only includes files and not directories.

  • pathname

    Filesystem path name.

    This schema is basically string with some checks and prefilters. Why use this schema instead of plain ol' str? Mainly to give you the ability to change tilde to user's home directory, e.g. ~/foo into /home/someuser/foo. Normally this expansion is done by a Unix shell, but sometimes your program receives an unexpanded path, e.g. when you get it from some config file.

    See also more OS-specific schemas like pathname::unix, which adds some more checks (e.g. pathname cannot contain forward slash and each component cannot be longer than 255 characters) and preprocessing (e.g. stripping extraneous slashes like foo//bar into foo/bar.

    What's the difference between this schema and filename and dirname? The default completion rule. This schema's completion by default includes files as well as directories.

  • pathnames

    List of filesystem path names.

    Coerces from string by expanding the glob pattern in the string.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Sah-Schemas-Path.

SOURCE

Source repository is at https://github.com/perlancar/perl-Sah-Schemas-Path.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Sah-Schemas-Path

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

Sah - specification

Data::Sah

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021, 2020, 2019, 2018, 2016 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.