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

NAME

Dist::Zilla::Tempdir::Dir - A temporary directory with a collection of item states

VERSION

version 1.001003

SYNOPSIS

  my $dir = Dist::Zilla::Tempdir::Dir->new();
  $dir->add_file( $zilla_file );
  $dir->run_in(sub {  });
  $dir->update_input_files;
  $dir->update_disk_files;

  my @file_states = $dir->files();

METHODS

files

Returns a list of Dist::Zilla::Tempdir::Item

add_file

  $dir->add_file( $dzil_file );

Adds $dzil_file to the named temporary directory, written out to disk, and records it internally as an "original" file.

update_input_file

  $dir->update_input_file( $dzil_file );

Refreshes the $dzil_file from its written out context, determining if that file has been changed since addition or not, recording the relevant data for ->files

update_disk_file

  $dir->update_disk_file( $disk_path );

Assume $disk_path is a path of a NEW file and record it in ->files

update_input_files

  $dir->update_input_files

Refresh the state of all written out files and record them ready for ->files

update_disk_files

  $dir->update_disk_files

Scan the temporary directory for files that weren't added as an input file, and record their status and information ready for ->files

run_in

  my $rval = $dir->run_in(sub {
    return 1;
  });

Enter the temporary directory and run the passed code block, which is assumed to be creating/modifying/deleting files.

keepalive

Utility method: Marks the temporary directory for preservation.

  $dir->keepalive()  # simply returns the path to the tempdir
  $dir->keepalive(1) # mark for retention
  $dir->keepalive(0) # mark for erasure

This is mostly an insane glue layer for

  $dir->_tempdir->[Path::Tiny::TEMP]->unlink_on_destroy($x)

Except the insanity of poking too many internal guts is well encapsulated.

keepalive_fail

A utility method to invoke a croak (heh) that preserves the scratch directory, and tells the croak recipient where to find it.

  $dir->keepalive_fail();
  $dir->keepalive_fail("Some Diagnostic Reason");

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric <kentfredric@gmail.com>.

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