albanpeignier / tryphon-puppet

Puppet configuration for Tryphon servers

This URL has Read+Write access

tryphon-puppet / script / module
100755 68 lines (55 sloc) 1.666 kb
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash -e
 
# TODO just a POC, make a real implementation
 
function usage() {
    cat - <<EOF
Usage: module [OPTIONS] command
Puppet module manager.
GENERAL OPTIONS
-h, --help Show this help message.
COMMANDS
install Install module from an URL.
EXAMPLES
Install a module from a git URL:
module install git://github.com/lak/puppet-puppet.git
Install a module from a git URL and a specified name:
module install git://github.com/lak/puppet-puppet.git lak-puppet
EOF
    exit 0
}
 
command=$1
[ -z "$command" ] && usage
 
shift
 
modules_dir=modules
[ -d $modules_dir ] || mkdir $modules_dir
cd $modules_dir
 
case $command in
    install)
        if [ ! -x "/usr/bin/git" ]; then
echo "You must install git to retrieve modules managed with it (apt-get install git-core)"
exit 1
        fi
 
module_url=$1
        [ -z "$module_url" ] && usage
            
        shift
 
if [ $# -gt 0 ]; then
module_name=$1
            shift
else
module_name=`echo $module_url | sed 's@.*/\(.*\)$@\1@'`
            # remove .git suffix
            module_name=`echo $module_name | sed 's/\.git$//'`
            # remove puppet- or module- prefix
            module_name=`echo $module_name | sed -e 's/^puppet-//' -e 's/^module-//'`
        fi
if [ -d $module_name ]; then
echo "module $module_name already installed"
            exit 1
        fi
 
echo "install module $module_name in $modules_dir/$module_name"
        
        git clone $module_url $module_name
        rm -rf $module_name/.git
        ;;
    *)
        usage
        ;;
esac