summaryrefslogtreecommitdiff
path: root/engines/balou/scripts/balou-install-theme
diff options
context:
space:
mode:
Diffstat (limited to 'engines/balou/scripts/balou-install-theme')
-rwxr-xr-xengines/balou/scripts/balou-install-theme103
1 files changed, 103 insertions, 0 deletions
diff --git a/engines/balou/scripts/balou-install-theme b/engines/balou/scripts/balou-install-theme
new file mode 100755
index 0000000..0f889e4
--- /dev/null
+++ b/engines/balou/scripts/balou-install-theme
@@ -0,0 +1,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
+ mkdir -p "${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