#!/bin/bash
#
# MANIFEST
#
# Copyright 2019 Luigi Santivetti <luigi.santivetti@gmail.com>

# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:

# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

# @@MIRROR_BEGIN@@
#module=
#mirror=
#protocol=
#branch=
#host=
#user=
#format=
#file=
#method={git-archive|git-clone|wget-file}
# @@MIRROR_ENDED@@

# @@MIRROR_BEGIN@@
modname=apache
mirror=$mod_authnz_external_mirror
protocol=file
branch=$mod_authnz_external_branch
host=/home/luigi/__vc/mirror
method=git-clone
# @@MIRROR_ENDED@@

# @@MIRROR_BEGIN@@
modname=apache
mirror=code-igniter-v3-giggi.git
protocol=file
branch=gg.rel
host=/home/luigi/__vc/mirror
method=git-clone
# @@MIRROR_ENDED@@

# @@MIRROR_BEGIN@@
modname=apache
mirror=pelican-subtle-giggi.git
protocol=file
branch=gg.rel
host=/home/luigi/__vc/mirror
method=git-clone
# @@MIRROR_ENDED@@

# @@MIRROR_BEGIN@@
modname=apache
mirror=mdcon.git
protocol=file
branch=master
host=/home/luigi/__vc/mirror
method=git-clone
# @@MIRROR_ENDED@@

# @@MIRROR_BEGIN@@
modname=gerrit
host=$war_mirror
file=gerrit-$war_version.war
method=wget-file
# @@MIRROR_ENDED@@

# @@MIRROR_BEGIN@@
modname=gerrit
mirror=$hooks_mir
protocol=file
branch=master
host=/home/luigi/__vc/mirror
method=git-clone
# @@MIRROR_ENDED@@

# @@MIRROR_BEGIN@@
modname=gerrit
host=$jar_sslib_mir1/$jar_sslib_mir2/$jar_sslib_mir3
file=$jar_sslib.jar
method=wget-file
# @@MIRROR_ENDED@@
