blob: 19211f1a720ec104c78d0747eb9da248ed026e89 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/bin/bash
#
# Setup subtrees.
#
# Parameters
DIRNAME="`dirname $0`"
# Usage
function usage {
echo "Usage: $1 add-submodules <DIR>"
exit $2
}
# Check for git-subtree
if ! which git-subtree &> /dev/null; then
echo "fatal: please install git-subtree"
exit 1
fi
# Set puppet folder
if [ -d "puppet" ]; then
PUPPET_FOLDER="puppet"
else
PUPPET_FOLDER="."
fi
# Get module list
repos="`grep = $DIRNAME/../.mrconfig | cut -d = -f 2 | cut -d ' ' -f 4`"
# Add subtrees
for repo in $repos; do
module="`basename $repo .git | sed -e s/^puppet-//`"
if [ ! -d "$PUPPET_FOLDER/modules/$module" ]; then
echo "Processing puppet module $module..."
git remote add $module $repo
git subtree add --prefix $PUPPET_FOLDER/modules/$module $module master --squash
elif [ ! -d "modules/$module/.git" ]; then
# The puppet module exists and is a subtree, so update it
if ! git remote | grep -qe "^$module$"; then
git remote add $module $repo
fi
# Update subtrees
git fetch $module master
git subtree pull --prefix $PUPPET_FOLDER/modules/$module $module master --squash
fi
done
|