summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Shoemaker <kutsuya@gentoo.org>2003-02-17 03:05:14 +0000
committerJason Shoemaker <kutsuya@gentoo.org>2003-02-17 03:05:14 +0000
commit51ce9d9791a065d60f1d16f41ee6a95a6a5c4249 (patch)
tree7578b4762408ca616ffc4bfc21714a554649a449 /app-admin/zope-config
parentinitial ebuild (diff)
downloadgentoo-2-51ce9d9791a065d60f1d16f41ee6a95a6a5c4249.tar.gz
gentoo-2-51ce9d9791a065d60f1d16f41ee6a95a6a5c4249.tar.bz2
gentoo-2-51ce9d9791a065d60f1d16f41ee6a95a6a5c4249.zip
inital import
Diffstat (limited to 'app-admin/zope-config')
-rw-r--r--app-admin/zope-config/ChangeLog7
-rw-r--r--app-admin/zope-config/files/0.1/zope-config304
-rw-r--r--app-admin/zope-config/files/digest-zope-config-0.10
-rw-r--r--app-admin/zope-config/zope-config-0.1.ebuild21
4 files changed, 332 insertions, 0 deletions
diff --git a/app-admin/zope-config/ChangeLog b/app-admin/zope-config/ChangeLog
new file mode 100644
index 000000000000..29046815c24a
--- /dev/null
+++ b/app-admin/zope-config/ChangeLog
@@ -0,0 +1,7 @@
+# ChangeLog for app-admin/zope-config
+# Copyright 2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-admin/zope-config/ChangeLog,v 1.1 2003/02/17 03:01:19 kutsuya Exp $
+
+*zope-config-0.1 (16 Feb 2003)
+
+ 16 Feb 2003; Jason Shoemaker <kutsuya@gentoo.org> : Initial import. \ No newline at end of file
diff --git a/app-admin/zope-config/files/0.1/zope-config b/app-admin/zope-config/files/0.1/zope-config
new file mode 100644
index 000000000000..f108a40a38d1
--- /dev/null
+++ b/app-admin/zope-config/files/0.1/zope-config
@@ -0,0 +1,304 @@
+#!/bin/bash
+# Gentoo Zope Instance configure tool.
+# Copyright 2003 Jason Shoemaker <kutsuya@gentoo.org>
+# Distributed under GPL v2
+
+VERSION="0.1"
+ZUID=zope
+ZS_DIR="/usr/share/zope/"
+ZI_DIR="/var/lib/zope/"
+INITD="/etc/init.d/"
+
+# Return codes used in this program:
+E_SUCCESS=0
+E_FAILURE=1
+
+#E_ZPLIST=20
+E_ZILIST=22
+#E_COMMAND=24
+E_PARAM=26
+E_ZSLIST=28
+E_ZIDEFAULT=30
+
+#Parameters:
+# $1 = instance directory
+# $2 = group
+
+zinst_security_setup()
+{
+ chown -R ${ZUID}:${2} ${1}
+ chmod -R g+u ${1}
+ chmod -R o-rwx ${1}
+ chown root ${1}/var/ # needed if $ZOPE_OPTS='-u root'
+ chmod +t ${1}/var/
+}
+
+#Params:
+# $1 = zserv dir
+# $2 = zinst dir
+
+zinst_fs_setup()
+{
+ local RESULT=${E_FAILURE}
+
+ if [ "${#}" -lt 2 ] ; then
+ # need a param
+ RESULT=${E_PARAM}
+ else
+ mkdir -p $2 || exit 1
+ if [ $(zinst_default_get >/dev/null)$? -ne 0 ] ; then
+ echo $(basename ${ZINST_DIR}) >${ZI_DIR}/.default
+ chown zope:root ${ZI_DIR}/.default
+ fi
+ cp -R $1/.templates/Extensions $2
+ cp -R $1/.templates/import $2
+ cp -R $1/.templates/var $2
+ mkdir $2/Products
+ RESULT=$?
+ fi
+
+ return ${RESULT}
+}
+
+#Params:
+# $1 = zserv dir
+# $2 = zinst dir
+# $3 = zinst name
+
+zinst_rc_setup()
+{
+ local RESULT=${E_FAILURE}
+
+ if [ "${#}" -lt 3 ] ; then
+ # need a param
+ RESULT=${E_PARAM}
+ else
+ install $1/.templates/zope.confd /etc/conf.d/${3}
+ install $1/.templates/zope.initd /etc/init.d/${3}
+ sed -i -e "/INSTANCE_HOME=/ c\\INSTANCE_HOME=${2}\\ " \
+ -e "/CLIENT_HOME=/ c\\CLIENT_HOME=${2}/var\\ " \
+ /etc/conf.d/${3}
+ RESULT=$?
+ fi
+ return ${RESULT}
+}
+
+#
+
+zserv_dir_get()
+{
+ local RESULT=${E_FAILURE}
+ local LIST=$(ls ${ZS_DIR})
+ local LIST_CNT=$(echo ${LIST} | wc -w)
+ local DLIST=
+
+ # Assume that LIST_TMP contains valid zserver dirs.
+ if [ ${LIST_CNT} -eq 1 ] ; then
+ ZSERV_DIR=${LIST}
+ RESULT=${E_SUCCESS}
+ elif [ ${LIST_CNT} -ne 0 ] ; then
+ for N in ${LIST} ; do
+ DLIST="${DLIST} $N -"
+ done
+ ZSERV_DIR=$(dialog --stdout \
+ --title "Zope Server List" \
+ --menu "Select desired zserver: " 0 0 ${LIST_CNT} ${DLIST})
+ RESULT=$?
+ else
+ RESULT=${E_ZSLIST} # There are no zservers
+ fi
+ ZSERV_DIR="${ZS_DIR}${ZSERV_DIR}"
+ return ${RESULT}
+}
+
+#
+
+zinst_dir_set()
+{
+ local RESULT=
+
+ if [ ! -d ${ZI_DIR} ] ; then
+ mkdir -p ${ZI_DIR}
+ fi
+
+ while : ; do
+ ZINST_DIR=$(dialog --stdout \
+ --backtitle "Need a uniqe name for zinstance directory.(Also the name of the rcscript.)" \
+ --inputbox "Enter a new zinstance name:" 0 0 )
+ RESULT=$?
+ if [ ${RESULT} -ne 0 ] ; then
+ break
+ elif [ -z ${ZINST_DIR} ] ; then
+ dialog --msgbox "Error: need a name." 0 0
+ continue
+ elif echo ${ZINST_DIR} |grep "/" ; then
+ dialog --msgbox "Error: ${ZINST_DIR} is a path, not a name." 0 0
+ continue
+ elif [[ -d "${ZI_DIR}${ZINST_DIR}" && \
+ -f "${INITD}${ZINST_DIR}" ]] ; then
+ dialog --msgbox "Error: ${ZINST_DIR} zinstance already exists." 0 0
+ continue
+ fi
+ ZINST_DIR=${ZI_DIR}${ZINST_DIR}
+ break
+ done
+ return ${RESULT}
+}
+
+#
+
+zinst_dir_get()
+{
+ local RESULT=1
+ local LIST=$(ls ${ZI_DIR})
+ local LIST_CNT=$(echo ${LIST} | wc -w)
+ local DLIST=
+
+ # Assume that LIST_TMP contains valid zinstance dirs.
+ if [ ${LIST_CNT} -eq 1 ] ; then
+ ZINST_DIR=${LIST}
+ RESULT=${E_SUCCESS}
+ elif [ ${LIST_CNT} -ne 0 ] ; then
+ for N in ${LIST} ; do
+ DLIST="${DLIST} $N -"
+ done
+ ZINST_DIR=$(dialog --stdout \
+ --title "Zope Instance List" \
+ --menu "Select desired zinstance:" 0 0 ${LIST_CNT} ${DLIST})
+ RESULT=$?
+ else
+ RESULT=${E_ZILIST} # There are no zinstances
+ fi
+ ZINST_DIR="${ZI_DIR}${ZINST_DIR}"
+ return ${RESULT}
+}
+
+#
+
+zinst_default_set()
+{
+ local RESULT=
+
+ zinst_dir_get
+ RESULT=$?
+ if [ ${RESULT} -eq 0 ] ; then
+ echo $(basename ${ZINST_DIR}) >${ZI_DIR}/.default
+ chown zope ${ZI_DIR}/.default
+ fi
+
+ return ${RESULT}
+}
+
+#
+
+zinst_default_get()
+{
+ local RESULT=${E_ZIDEFAULT}
+
+ if [ -s ${ZI_DIR}/.default ] ; then
+ cat ${ZI_DIR}/.default
+ RESULT=$? # use to be 0
+ fi
+ return ${RESULT}
+}
+
+#
+
+zinst_zgid_set()
+{
+ local RESULT=
+ while : ; do
+ ZGID_NAME=$(dialog --stdout \
+ --backtitle "Need to create/assign a zinstance group name." \
+ --inputbox "Enter a group name:" \
+ 0 0 $(basename ${ZIRC_NAME}))
+ RESULT=$?
+ if [ ${RESULT} -ne 0 ] ; then
+ break
+ elif [ -z ${ZGID_NAME} ] ; then
+ dialog --msgbox "Error: empty string." 0 0
+ continue
+ elif groupmod ${ZGID_NAME} >/dev/null 2>&1 ; then
+ dialog --yesno "${ZGID_NAME} already exists, use it?" 0 0
+ RESULT=$?
+ [ ${RESULT} -ne 0 ] && continue
+ fi
+ break
+ done
+ return ${RESULT}
+}
+
+zinst_zpasswd_set()
+{
+ if [ -z ${ZSERV_DIR} ] ; then
+ zserv_dir_get || { exit $? ; }
+ fi
+ if [ -z ${ZINST_DIR} ] ; then
+ zinst_dir_get || exit $?
+ fi
+
+ echo ">>> Create Zope inituser for \"$(basename ${ZINST_DIR})\"..."
+ /usr/bin/python2.1 ${ZSERV_DIR}/zpasswd.py ${ZINST_DIR}/inituser
+ # If zpasswd is aborted it creates a blank inituser
+ chown ${ZUID} ${ZINST_DIR}/inituser
+}
+
+usage()
+{
+ echo "$(basename $0) version ${VERSION}"
+ echo "A Gentoo Zope Instance configure tool."
+ echo
+ echo "Interactive usage:"
+ echo -e "\t$(basename $0)"
+ echo "Partial interactive usage:"
+ echo -e "\t$(basename $0) --[zserv=[dir] &| zinst=[dir] &| zgid=[name]]"
+ echo "Non-interactive usage:"
+ echo -e "\t$(basename $0) --[zidef-get | zidef-set | zpasswd | version | help]"
+ echo -e "\t$(basename $0) --[zserv=[dir] & zinst=[dir] & zgid=[name]]"
+ exit ${E_SUCCESS}
+}
+
+##### Process the commandline
+
+while [ "$#" -gt 0 ] ; do
+ case "$1" in
+ -*=*) OPTARG=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;;
+ *) OPTARG= ;;
+ esac
+
+ case "$1" in
+ --zserv=*) ZSERV_DIR=${OPTARG} ;;
+ --zinst=*) ZINST_DIR=${OPTARG} ;;
+ --zgid=*) ZGID_NAME=${OPTARG} ;;
+ --zidef-set) zinst_default_set ; exit $? ;;
+ --zidef-get) zinst_default_get ; exit $? ;;
+ --zpasswd) zinst_zpasswd_set ; exit $? ;;
+ --version) echo ${VERSION} ; exit 0 ;;
+ -*) usage ;;
+ *) usage ;;
+ esac
+ shift
+done
+
+if [ -z ${ZSERV_DIR} ] ; then
+ zserv_dir_get || { echo 'Canceled: zserv_dir_get' ; exit 1 ; }
+fi
+
+if [ -z ${ZINST_DIR} ] ; then
+ zinst_dir_set || { echo 'Canceled: zinst_dir_set' ; exit 1 ; }
+fi
+
+[ -z ${ZIRC_NAME} ] && ZIRC_NAME=$(basename ${ZINST_DIR})
+
+if [ -z ${ZGID_NAME} ] ; then
+ zinst_zgid_set || { echo 'Canceled: zinst_zgid_set' ; exit 1 ; }
+fi
+
+zinst_fs_setup ${ZSERV_DIR} ${ZINST_DIR}
+zinst_rc_setup ${ZSERV_DIR} ${ZINST_DIR} ${ZIRC_NAME}
+groupadd ${ZGID_NAME}
+zinst_security_setup ${ZINST_DIR} ${ZGID_NAME}
+
+# TODO: see about adding interactive configuration of ZOPE_OPTS
+echo "Note: Don\'t forget to edit ZOPE_OPTS in /etc/init.d/${ZIRC_NAME}"
+
diff --git a/app-admin/zope-config/files/digest-zope-config-0.1 b/app-admin/zope-config/files/digest-zope-config-0.1
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/app-admin/zope-config/files/digest-zope-config-0.1
diff --git a/app-admin/zope-config/zope-config-0.1.ebuild b/app-admin/zope-config/zope-config-0.1.ebuild
new file mode 100644
index 000000000000..e421761e7e13
--- /dev/null
+++ b/app-admin/zope-config/zope-config-0.1.ebuild
@@ -0,0 +1,21 @@
+
+# Copyright 2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-admin/zope-config/zope-config-0.1.ebuild,v 1.1 2003/02/17 03:01:19 kutsuya Exp $
+
+DESCRIPTION="A Gentoo Zope Instance configure tool."
+SRC_URI=""
+HOMEPAGE=""
+IUSE=""
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~x86"
+
+DEPEND=">=dev-util/dialog-0.7
+ sys-apps/grep
+ sys-apps/sed"
+
+src_install() {
+ dosbin ${FILESDIR}/${PV}/zope-config
+}