NAME

App::Nrepo - An application to handle management of various software repositories This module is purely to designed to be used with the accompanying script bin/nrepo Please look at its pod for instantiating of this Module

Methods

go

Entry point for this object my $o = App::Nrepo->new(config => $hashref, logger => Log::Dispatch->new()); $o->go($action, %options); Valid actions:

add-file
del-file
clean
init
list
mirror
tag

For each actions required options see its appropriate method below

add_file

Action: add-file

Description: Adds a file to a local repository and updates the related metadata

Options:

repo

The name of the repository as reflected in the config

arch

The arch this package should be added to as reflected in the config

file

The path of the file to be added to the repository

force

Boolean to enable force overwriting an existing file in the repository

del_file

Action: del-file

Description: Removes a file to a local repository and updates the related metadata

Options:

repo

The name of the repository as reflected in the config

arch

The arch this package should be removed from as reflected in the config

file

The filename to be removed to the repository

clean

Action: clean

Description: Removes files from a repository that are not referenced in the metadata

Options:

repo

The name of the repository as reflected in the config If 'all' is supplied it will perform this action on all repositories in config

init

Action: init

Description: Initialises a custom repository by generating the appropriate metadata files

Options:

repo

The name of the repository as reflected in the config

list

Action: list

Description: Lists the repositories as reflected in the config

mirror

Action: mirror

Description: Mirrors repository from upstream provider into the head tag

Options:

repo

The name of the repository as reflected in the config If 'all' is supplied it will perform this action on all repositories in config

checksums

By default we just use the manifests information about size of packages to determine if the local file is valid. If you want to have checksums used enable this boolean flag. With this enabled updating a mirror can take quite a long time

tag

Action: tag

Description: Tags a repository at a particular state

Options:

repo

The name of the repository as reflected in the config

src-tag

The source tag to use for this operation, by default this is 'head' The source tag must pre exist.

dest-tag

The destination tag to use for this operation.

This will make the link operation use a symlink instead of hardlinking For example you may tag every time you update from upstream but you move a production tag around...provides easy roll back for your clients package configuration

force

Force will overwrite a pre existing dest-tag location