blob: 1fd6de1410e921e211a5a5afe2e034c2aa9b6972 (
plain) (
blame)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#!/bin/sh
#
# flufigut
#
# flufigut, the flumotion configuration utility, is a simple tool
# that generates flumotion configuration files using pyhton jinja2
# template engine and simplejson. flufigut generates planet.xml
# and worker.xml files from configuration templates and an easy to
# understand representation of the flow structure written in json.
#
#
# Copyright (C) 2012 Christian Pointner <equinox@spreadspace.org>
# Michael Gebetsroither <michael@mgeb.org>
#
# This file is part of flufigut.
#
# flufigut is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# any later version.
#
# flufigut is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with flufigut. If not, see <http://www.gnu.org/licenses/>.
#
NAME="flumotion"
LOGFILE="/var/log/flumotion/service.log"
DAEMON="/usr/sbin/$NAME"
DAEMON_ARGS="-d 3 -l $LOGFILE"
CONF_DIR="/etc/flumotion"
if [ "install" = "$1" ]; then
UID=`/usr/bin/id -u`
if [ $UID -ne 0 ]; then
echo "ERROR: this script must run as root for install installation."
exit 1
fi
cp $0 /usr/local/bin
getent passwd flufigut > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo -n "copy&paste public key and press enter: "
read pubkey
if [ -z "$pubkey" ]; then
echo "ERROR: no keyfile given"
exit 1
fi
adduser flufigut --disabled-password --home /var/lib/flufigut --gecos "flufigut management" --shell "/bin/sh"
adduser flufigut flumotion
mkdir -p /var/lib/flufigut/.ssh
echo 'command="/usr/local/bin/flufigut-client.sh",no-X11-forwarding,no-agent-forwarding,no-port-forwarding '$pubkey > /var/lib/flufigut/.ssh/authorized_keys
chown -R flufigut:flufigut /var/lib/flufigut/.ssh
chmod 600 /var/lib/flufigut/.ssh/authorized_keys
echo "flufigut ALL = (flumotion) NOPASSWD: $DAEMON, /bin/tar" >> /etc/sudoers
fi
echo "successfully installed flufigut client."
exit 0
fi
start_instance() {
type="$1"
name="$2"
sudo -u flumotion $DAEMON $DAEMON_ARGS start $type $name
return "$?"
}
stop_instance() {
type="$1"
name="$2"
sudo -u flumotion $DAEMON $DAEMON_ARGS stop $type $name
return "$?"
}
command=`echo $SSH_ORIGINAL_COMMAND | awk '{ print $1 }'`
param=`echo $SSH_ORIGINAL_COMMAND | awk '{ print $2 }'`
case "$command" in
install)
echo -n "install files from $param ... "
cd $CONF_DIR
sudo -u flumotion tar --strip-components=2 -xzf "$param"
rm "$param"
echo "done."
;;
start)
echo -n "starting ... "
echo "ok."
;;
stop)
echo -n "stopping ... "
echo "ok."
;;
restart)
echo -n "stopping ... "
sleep 1
echo -n "starting ..."
echo "ok."
;;
scp)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Unknown command: '$command'"
exit 1
;;
esac
exit 0
|