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