The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

File::Trash::Undoable - Trash files, with undo/redo capability

VERSION

This document describes version 0.16 of File::Trash::Undoable (from Perl distribution File-Trash-Undoable), released on 2015-02-06.

SYNOPSIS

 # use the trash-u script

DESCRIPTION

This module provides routines to trash files, with undo/redo support. Actual trashing/untrashing is provided by File::Trash::FreeDesktop.

Screenshots:

FUNCTIONS

empty_trash() -> [status, msg, result, meta]

{en_US Empty trash}.

No arguments.

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)

list_trash_contents() -> [status, msg, result, meta]

{en_US List contents of trash directory}.

No arguments.

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)

trash(%args) -> [status, msg, result, meta]

{en_US Trash a file}.

{en_US Fixed state: path does not exist.

Fixable state: path exists. }

This function is idempotent (repeated invocations with same arguments has the same effect as single invocation). This function supports transactions.

Arguments ('*' denotes required arguments):

  • path* => str

  • suffix => str

Special arguments:

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)

trash_files(%args) -> [status, msg, result, meta]

{en_US Trash files (with undo support)}.

This function is idempotent (repeated invocations with same arguments has the same effect as single invocation). This function supports transactions.

Arguments ('*' denotes required arguments):

  • files* => array[str]

    {en_US Files/dirs to delete}.

    {en_US Files must exist. }

Special arguments:

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)

untrash(%args) -> [status, msg, result, meta]

{en_US Untrash a file}.

{en_US Fixed state: path exists.

Fixable state: Path does not exist (and exists in trash, and if suffix is specified, has the same suffix). }

This function is idempotent (repeated invocations with same arguments has the same effect as single invocation). This function supports transactions.

Arguments ('*' denotes required arguments):

  • path* => str

  • suffix => str

Special arguments:

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)


SEE ALSO

  • gvfs-trash

    A command-line utility, part of the GNOME project.

  • trash-cli, https://github.com/andreafrancia/trash-cli

    A Python-based command-line application. Also follows freedesktop.org trash specification.

  • rmv, http://code.google.com/p/rmv/

    A bash script. Features undo ("rollback"). At the time of this writing, does not support per-filesystem trash (everything goes into home trash).

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/File-Trash-Undoable.

SOURCE

Source repository is at https://github.com/perlancar/perl-File-Trash-Undoable.

BUGS

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

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.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 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.