~ubuntu-branches/ubuntu/quantal/lxc/quantal-201205292108

« back to all changes in this revision

Viewing changes to .pc/04-configuration-path.patch/src/lxc/lxc-create.in

  • Committer: Package Import Robot
  • Author(s): Daniel Baumann, Jonas Genannt, Daniel Baumann
  • Date: 2011-08-22 11:36:00 UTC
  • mfrom: (1.1.10 upstream)
  • mto: This revision was merged to the branch mainline in revision 40.
  • Revision ID: package-import@ubuntu.com-20110822113600-4ab12s3qlynykbm4
Tags: 0.7.5-1
[ Jonas Genannt ]
* Merging upstream version 0.7.5.

[ Daniel Baumann ]
* Removing fedora.patch, not needed anymore for updated fedora
  template.
* Rediffing debian.patch.
* Rediffing debian2.patch.
* Renaming and renumbering patches.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/bash
2
 
 
3
 
#
4
 
# lxc: linux Container library
5
 
 
6
 
# Authors:
7
 
# Daniel Lezcano <daniel.lezcano@free.fr>
8
 
 
9
 
# This library is free software; you can redistribute it and/or
10
 
# modify it under the terms of the GNU Lesser General Public
11
 
# License as published by the Free Software Foundation; either
12
 
# version 2.1 of the License, or (at your option) any later version.
13
 
 
14
 
# This library is distributed in the hope that it will be useful,
15
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
 
# Lesser General Public License for more details.
18
 
 
19
 
# You should have received a copy of the GNU Lesser General Public
20
 
# License along with this library; if not, write to the Free Software
21
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
 
 
23
 
usage() {
24
 
    echo "usage: lxc-create -n <name> [-f configuration] [-t template] [-h]"
25
 
}
26
 
 
27
 
help() {
28
 
    usage
29
 
    echo
30
 
    echo "creates a lxc system object."
31
 
    echo
32
 
    echo "Options:"
33
 
    echo "name         : name of the container"
34
 
    echo "configuration: lxc configuration"
35
 
    echo "template     : lxc-template is an accessible template script"
36
 
}
37
 
 
38
 
shortoptions='hn:f:t:'
39
 
longoptions='help,name:,config:,template:'
40
 
lxc_path=@LXCPATH@
41
 
bindir=@BINDIR@
42
 
templatedir=@LXCTEMPLATEDIR@
43
 
 
44
 
getopt=$(getopt -o $shortoptions --longoptions  $longoptions -- "$@")
45
 
if [ $? != 0 ]; then
46
 
    usage
47
 
    exit 1;
48
 
fi
49
 
 
50
 
eval set -- "$getopt"
51
 
 
52
 
while true; do
53
 
        case "$1" in
54
 
            -h|--help)
55
 
                help
56
 
                exit 1
57
 
                ;;
58
 
            -n|--name)
59
 
                shift
60
 
                lxc_name=$1
61
 
                shift
62
 
                ;;
63
 
            -f|--config)
64
 
                shift
65
 
                lxc_config=$1
66
 
                shift
67
 
                ;;
68
 
            -t|--template)
69
 
                shift
70
 
                lxc_template=$1
71
 
                shift
72
 
                ;;
73
 
            --)
74
 
                shift
75
 
                break;;
76
 
            *)
77
 
                echo $1
78
 
                usage
79
 
                exit 1
80
 
                ;;
81
 
        esac
82
 
done
83
 
 
84
 
if [ -z "$lxc_path" ]; then
85
 
    echo "no configuration path defined !"
86
 
    exit 1
87
 
fi
88
 
 
89
 
if [ ! -r $lxc_path ]; then
90
 
    echo "configuration path '$lxc_path' not found"
91
 
    exit 1
92
 
fi
93
 
 
94
 
if [ -z "$lxc_name" ]; then
95
 
    echo "no container name specified"
96
 
    usage
97
 
    exit 1
98
 
fi
99
 
 
100
 
if [ "$(id -u)" != "0" ]; then
101
 
   echo "This command has to be run as root"
102
 
   exit 1
103
 
fi
104
 
 
105
 
if [ ! -r $lxc_path ]; then
106
 
    echo "no configuration path defined !"
107
 
    exit 1
108
 
fi
109
 
 
110
 
if [ -d "$lxc_path/$lxc_name" ]; then
111
 
    echo "'$lxc_name' already exists"
112
 
    exit 1
113
 
fi
114
 
 
115
 
trap "${bindir}/lxc-destroy -n $lxc_name; echo aborted; exit 1" SIGHUP SIGINT SIGTERM
116
 
 
117
 
mkdir -p $lxc_path/$lxc_name
118
 
 
119
 
if [ -z "$lxc_config" ]; then
120
 
    touch $lxc_path/$lxc_name/config
121
 
else
122
 
    if [ ! -r "$lxc_config" ]; then
123
 
        echo "'$lxc_config' configuration file not found"
124
 
        exit 1
125
 
    fi
126
 
 
127
 
    cp $lxc_config $lxc_path/$lxc_name/config
128
 
fi
129
 
 
130
 
if [ ! -z $lxc_template ]; then
131
 
 
132
 
    type ${templatedir}/lxc-$lxc_template >/dev/null
133
 
    if [ $? -ne 0 ]; then
134
 
        echo "unknown template '$lxc_template'"
135
 
        ${bindir}/lxc-destroy -n $lxc_name
136
 
        exit 1
137
 
    fi
138
 
 
139
 
    if [ -z "$lxc_config" ]; then
140
 
        echo
141
 
        echo "Warning:"
142
 
        echo "-------"
143
 
        echo "Usually the template option is called with a configuration"
144
 
        echo "file option too, mostly to configure the network."
145
 
        echo "eg. lxc-create -n foo -f lxc.conf -t debian"
146
 
        echo "The configuration file is often:"
147
 
        echo
148
 
        echo "lxc.network.type=macvlan"
149
 
        echo "lxc.network.link=eth0"
150
 
        echo "lxc.network.flags=up"
151
 
        echo
152
 
        echo "or alternatively:"
153
 
        echo
154
 
        echo "lxc.network.type=veth"
155
 
        echo "lxc.network.link=br0"
156
 
        echo "lxc.network.flags=up"
157
 
        echo
158
 
        echo "For more information look at lxc.conf (5)"
159
 
        echo
160
 
        echo "At this point, I assume you know what you do."
161
 
        echo "Press <enter> to continue ..."
162
 
        read dummy
163
 
    fi
164
 
 
165
 
    ${templatedir}/lxc-$lxc_template --path=$lxc_path/$lxc_name --name=$lxc_name
166
 
    if [ $? -ne 0 ]; then
167
 
        echo "failed to execute template '$lxc_template'"
168
 
        ${bindir}/lxc-destroy -n $lxc_name
169
 
        exit 1
170
 
    fi
171
 
 
172
 
    echo "'$lxc_template' template installed"
173
 
fi
174
 
 
175
 
echo "'$lxc_name' created"