diff options
author | Jason Shoemaker <kutsuya@gentoo.org> | 2003-02-17 03:05:14 +0000 |
---|---|---|
committer | Jason Shoemaker <kutsuya@gentoo.org> | 2003-02-17 03:05:14 +0000 |
commit | 498941bbd9f33f243d3e173a204d704a6588d9b7 (patch) | |
tree | 3cace866cdf03164ff419b88121889257d7bea96 /app-admin/zope-config | |
parent | initial ebuild (diff) | |
download | historical-498941bbd9f33f243d3e173a204d704a6588d9b7.tar.gz historical-498941bbd9f33f243d3e173a204d704a6588d9b7.tar.bz2 historical-498941bbd9f33f243d3e173a204d704a6588d9b7.zip |
inital import
Diffstat (limited to 'app-admin/zope-config')
-rw-r--r-- | app-admin/zope-config/ChangeLog | 7 | ||||
-rw-r--r-- | app-admin/zope-config/files/0.1/zope-config | 304 | ||||
-rw-r--r-- | app-admin/zope-config/files/digest-zope-config-0.1 | 0 | ||||
-rw-r--r-- | app-admin/zope-config/zope-config-0.1.ebuild | 21 |
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 +} |