diff options
author | rhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58> | 2007-04-13 21:46:27 +0000 |
---|---|---|
committer | rhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58> | 2007-04-13 21:46:27 +0000 |
commit | f76d87c78ade79c700b6dd48aeb6b8bbef60cf34 (patch) | |
tree | a64bfb20225c12ec13001a2ba7a4e3f381532c06 /branches/0.6/src/mkjail | |
parent | aa280bb3fbf166e31b939342c1d956848a801780 (diff) | |
download | simplepkg-f76d87c78ade79c700b6dd48aeb6b8bbef60cf34.tar.gz simplepkg-f76d87c78ade79c700b6dd48aeb6b8bbef60cf34.tar.bz2 |
created 0.6 branch
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@341 04377dda-e619-0410-9926-eae83683ac58
Diffstat (limited to 'branches/0.6/src/mkjail')
-rwxr-xr-x | branches/0.6/src/mkjail | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/branches/0.6/src/mkjail b/branches/0.6/src/mkjail new file mode 100755 index 0000000..f6c935c --- /dev/null +++ b/branches/0.6/src/mkjail @@ -0,0 +1,113 @@ +#!/bin/bash +# +# mkjail v0.4: chroot jail maker +# +# feedback: rhatto at riseup.net | GPL +# +# Mkjail 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. +# +# Mkjail 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 +# + +COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" + +if [ -f "$COMMON" ]; then + source $COMMON +else + echo "error: file $COMMON found, check your `basename $0` installation" + exit 1 +fi + +function usage { + + echo "usage: [ARCH=arch] [VERSION=version] [ROOT=/otherroot] $BASENAME <jail-name> [template]" + exit 1 + +} + +function exec_post_install_scripts { + + # exec post installation scripts + # usage: exec_post_install_script <jail-root> <jail-name> + + local list + + if [ -z "$2" ]; then + return 1 + fi + + echo "$BASENAME: executing template scripts..." + if [ -d "$TEMPLATE_BASE.s" ]; then + for file in $TEMPLATE_BASE.s/*; do + if [ -x "$file" ]; then + $file $1 $2 + fi + done + fi + +} + +function jailist_update { + + # update the jail list file + # usage: jailist_update <jail-path> + + if [ "$ADD_TO_JAIL_LIST" == "1" ]; then + touch $JAIL_LIST + if ! grep -q -e "^$1\$" $JAIL_LIST; then + echo $1 >> $JAIL_LIST + fi + fi + +} + +if [ -z "$1" ]; then + usage +else + server="$1" + eval_config $BASENAME -u +fi + +if [ ! -z "$2" ]; then + search_template $2 + result="$?" +else + search_default_template + result="$?" +fi + +if [ "$result" != "0" ]; then + exit 1 +fi + +TEMPLATE="$TEMPLATE_BASE.template" + +if [ ! -d "$JAIL_ROOT/$server" ]; then + mkdir -p $JAIL_ROOT/$server +else + if [ ! -z "`ls $JAIL_ROOT/$server | grep -v 'lost+found'`" ]; then + echo $BASENAME: error: folder $JAIL_ROOT/$server already exists and seens to be not empty + echo $BASENAME: probably the jail $1 already exists + exit 1 + fi +fi + +echo "$BASENAME: instaling packages into $JAIL_ROOT/$server using $TEMPLATE..." + +install_packages +copy_template_files $JAIL_ROOT/$server +set_jail_perms $JAIL_ROOT/$server +jailist_update $JAIL_ROOT/$server +exec_post_install_scripts $JAIL_ROOT $server + +echo $BASENAME: done creating $server jail + |