blob: 48cf93b726757816fd7a40dfa370792d221a37e3 (
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
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
|
#!/bin/sh
#
# $Id$
#
# Copyright (c) 2004 Benedikt Meurer <benny@xfce.org>
# All rights reserved.
#
# This program 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, or (at your option)
# any later version.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
#
leave()
{
if test -d "${tmpdir}"; then
rm -rf "${tmpdir}" >/dev/null 2>&1
fi
exit $1
}
if test $# -ne 2; then
echo "Usage: balou-install-theme <theme> <targetdir>" >&2
exit 1
fi
tmpdir=""
themedir="${1}"
targetdir="${2}"
# ensure the target directory exists
if test ! -d "${targetdir}"; then
mkdirhier "${targetdir}" >/dev/null 2>&1
if test $? -ne 0; then
echo "Unable to create themes directory ${targetdir}." >&2
exit 1
fi
fi
# if the source is a file, we expect it to be a tarball
if test -f "${themedir}"; then
tmpdir=`mktemp -d "/tmp/balou-theme-XXXXXX"` || exit 1
if echo "${themedir}" | grep '\.tar\.gz$' >/dev/null 2>&1; then
tar xzf "${themedir}" -C "${tmpdir}" >/dev/null 2>&1
if test $? -ne 0; then
echo "Unable to extract theme." 2>&2
leave 1
fi
else
echo "Not a splash theme file: ${themedir}." >&2
leave 1
fi
themerc=`ls ${tmpdir}/*/balou/themerc` || leave 1
baloudir=`dirname "${themerc}"` || leave 1
topdir=`dirname "${baloudir}"` || leave 1
if test ! -d "${topdir}" -o ! -d "${topdir}/balou/"; then
echo "Invalid theme file format." >&2
leave 1
fi
themedir="${topdir}"
fi
# verify the theme content
if test -d "${themedir}"; then
if test ! -d "${themedir}/balou/"; then
echo "No balou sub directory in theme." >&2
leave 1
fi
if test ! -r "${themedir}/balou/themerc"; then
echo "No themerc file in theme." >&2
leave 1
fi
fi
# install the theme
themebase=`dirname "${themedir}"`
themename=`basename "${themedir}"`
(cd "${themebase}" \
&& tar cf - "${themename}/balou/" \
| (cd "${targetdir}" && tar xf -)) >/dev/null 2>&1
if test $? -ne 0; then
echo "Unable to install the theme ${themename} from ${themebase} to ${targetdir}." >&2
leave 1
fi
# tell the caller the name of the installed plugin
echo "${themename}"
leave 0
|