NAME
nrepo - Repository Management
DESCRIPTION
Nrepo is designed to be an extensible repository management system Currently it provides a basic framework and support for Yum based repositories. Stay tuned for more!
SYNOPSIS
nrepo --action X [options]
See perldoc App::Nrepo for all valid actions and their in depth descriptions
Actions:
list List all configured repositories
mirror Mirror a repository
requires:
--repo (all|$repository_name)
optional:
--checksums
tag Tag a repository
requires:
--repo $repository_name
--tag $destination_tag
optional:
--src-tag $src_tag (defaults to 'head')
--symlink (default false)
clean Cleans a repository of unreferenced files
requires:
--repo (all|$repository_name)
init Initialise a custom repository
requires:
--repo $repository_name
add-file Add files to a custom repository
requires:
--repo $repository_name
--arch $arch
--file $path_to_file (--file can be supplied multiple times)
del-file Remove files from a custom repository
requires:
--repo $repository_name
--arch $arch
--file $path_to_file (--file can be supplied multiple times)
Script Options:
--config-file Path to config-file, defaults to ./conf/nrepo.conf
--log-level Change the stdout log level (overrides config)
--help This helpful message
Examples:
nrepo --action mirror --repo centos-6-epel
nrepo --action tag --repo centos-6-epel --tag release_20150827
nrepo --action tag --repo centos-6-epel --src-tag release_20150827 --symlink --tag production
This will:
1. update centos-6-epel to the current upstream version
2. create a hardlink copy of head to release_20150827
3. create a symlink of release_20150827 to production
nrepo.conf Configuration:
# Global options:
# data_dir - path to location where repositories files are stored data_dir = /path/to/repo_data
# include - you can use this to include other conf files or directories include repos.d
# tag_style - (Defaults to bottomdir) This determines if repositories are tagged at a parent or child level # eg. # topdir would have tags like: $data_dir/$tag/$repo_name # bottomdir would have tags like: $data_dir/$repo_name/$tag
#hard_tag_regex - When someone creates a hard tag of a repository the destination tag must match this regex (No default) # This can be per repo and/or global. it will use the per repo value first # ie I want them as: release_YYYYMMDD #hard_tag_regex = ^release_\d{8}$
# log_file - Path to log output to (No default) # log_file_level - At what level you want the log file logged at (defaults to info) # screen_level - At what level you want the screen to output at (defaults to notice) this can be overwritten on the cli using --log-level