NAME
updater - a command-line tool to mass-update multiple version-controlled projects
SYNOPSIS
updater [-ds] init [DIR]
updater [-ds] [-D DIR]
updater [-ds] list [-Y my.yaml] [DIR]
updater [-ds] update [-Y my.yaml] [DIR]
updater [-ds] backup [-Y my.yaml] [DIR]
updater [-ds] restore [-Y my.yaml] [DIR]
OPTIONS
- -d, --debug
-
Print debug information on STDOUT
- -D /path/to/root/dir, --dir=/path/to/root/dir
-
Sets working data directory
Default: current directory (.)
- -h, --help
-
Show short help information and quit
- -H, --longhelp
-
Show long help information and quit
- -l, --ls, --list
-
Turns off update performing and show list of found folders
- -s, --silent
-
Turns on the silent mode
- -V, --version
-
Print the version number of the program and quit
- -Y YAML_FILE, --yaml=YAML_FILE
-
Specifies yaml file to manually migration directory structure
Default:
.updater.yml
COMMANDS
- init, initialize, ini
-
updater initForced init the work makefile
- restore, re
-
updater restoreRestore file struct by YAML file
- status, info, st
-
updater statusShow status information
- update, up
-
updater updatePerforms update found folders
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.
CUSTOM UPDATING
If any subdirectory contains a file named .updater with a list of commands to execute, that directory will take priority during processing, even if it contains system subdirectories such as .svn, .git, or others.
All commands listed in the .updater file must be executed strictly in the specified order.
If the .updater file is empty or contains no commands, the directory will be skipped. This allows you to explicitly disable processing of certain directories, even if they contain system subdirectories such as .git, .svn, or others.
CLONING WORKING STRUCTURE
If you have a new workstation (desktop, laptop, etc.), you can clone your working environment by performing the following steps:
1. In the source directory, run:
make clean
updater -l
2. Copy the generated .updater.yml file from the source directory - the one you intend to clone from - to the target directory on the new workstation. The project structure will be restored from the repositories specified in .updater.yml.
3. Switch to the target directory on the new workstation and run:
updater restore
After completing these steps, the entire project structure identical to the original will be recreated. This significantly reduces the time required to clone all your projects onto a new workstation.
Note that if any project contains a custom "updater" (a .updater file), that directory will not be cloned automatically and must be cloned manually.
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/