NAME

updater - a command-line tool to mass-update multiple version-controlled projects

SYNOPSIS

use App::Updater;

my $app = App::Updater->new(...);

exit $app->run ? 0 : 1;

DESCRIPTION

The updater tool provides a unified way to update directory structures containing multiple version-controlled projects (e.g., Git, SVN, etc.). With a single command, users can synchronize all subdirectories to their latest state by automatically executing update commands such as git pull or svn up in each repository. This simplifies and automates the process of keeping multiple projects up to date.

METHODS

This class implements the following methods

backup

$app->backup("./.updater.yml", [...]);

Saves YAML file that contains the data of work directory

execmd

my $ret = $app->execmd("command", "arg1", "arg2", "argn");

Performs execute system commands and returns hash:

{
    command => 'noop',
    status  => 1,
    err_msg => '',
    err     => '',
    out     => '',
}
command

The system command string

status

Status: 1 - Ok, 0 - Error

err_msg

System error message, no STDERR!

err

STDERR in string format

out

STDOUT in string format

init_makefile

$app->init_makefile();
$app->init_makefile(FORCE_INIT);

Initializes Makefile file to make updates easier

raise

return $app->raise("Mask %s", "val");
return $app->raise("val");

Prints message to STDERR

restore

$app->restore("./.updater.yml");

Loads YAML file that contains the data of work directory and restore each project of this file

startup

Acrux application internal startup method

update

$app->update($rule, $dir, @commands);

Performs update projects of work directory

HISTORY

See Changes file

TO DO

See TODO file

SEE ALSO

Acme::Crux

AUTHOR

Serż Minus (Sergey Lepenkov) https://www.serzik.com <abalama@cpan.org>

COPYRIGHT

Copyright (C) 1998-2025 D&D Corporation. All Rights Reserved

LICENSE

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

See LICENSE file and https://dev.perl.org/licenses/