aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--trunk/lib/common.sh40
-rwxr-xr-xtrunk/src/jail-commit6
-rwxr-xr-xtrunk/src/jail-update63
-rwxr-xr-xtrunk/src/mkjail38
-rwxr-xr-xtrunk/src/templatepkg13
5 files changed, 118 insertions, 42 deletions
diff --git a/trunk/lib/common.sh b/trunk/lib/common.sh
index d0fde3c..5785223 100644
--- a/trunk/lib/common.sh
+++ b/trunk/lib/common.sh
@@ -334,7 +334,7 @@ function search_default_template {
function search_template {
# determine the template to be used
- # usage: <search-template> <template-name> [--new | --update]
+ # usage: search-template <template-name> [--new | --update]
#
# templates can be stored either on
@@ -409,3 +409,41 @@ function get_group {
}
+function copy_template_files {
+
+ # copy template files into jail
+ # usage: copy_template_files <jail-path>
+
+ if [ -d "$1" ]; then
+ echo "$BASENAME: copying template files..."
+ if [ -d "$TEMPLATE_BASE.d" ]; then
+ if [ "$TEMPLATES_UNDER_SVN" == "1" ]; then
+ rsync -av --exclude=.svn $TEMPLATE_BASE.d/ $JAIL_ROOT/$server/
+ else
+ rsync -av $TEMPLATE_BASE.d/ $JAIL_ROOT/$server/
+ fi
+ fi
+ fi
+
+}
+
+function set_jail_perms {
+
+ # set template file permissions under a jail
+ # usage: set_jail_perms <jail-path>
+
+ if [ -s "$TEMPLATE_BASE.perms" ]; then
+ cat $TEMPLATE_BASE.perms | while read entry; do
+ file="`echo $entry | cut -d ";" -f 1`"
+ if [ -a "$TEMPLATE_BASE.d/$file" ] && [ -a "$1/$file" ]; then
+ owner="`echo entry | cut -d ";" -f 2`"
+ group="`echo entry | cut -d ";" -f 3`"
+ perms="`echo entry | cut -d ";" -f 4`"
+ chmod $perms $1/$file
+ chown $owner:$group $1/$file
+ fi
+ done
+ fi
+
+}
+
diff --git a/trunk/src/jail-commit b/trunk/src/jail-commit
index 8de547c..d6e18f3 100755
--- a/trunk/src/jail-commit
+++ b/trunk/src/jail-commit
@@ -1,13 +1,13 @@
#!/bin/bash
#
-# jail-update: update config files from a jail to a template
+# jail-commit: update config files from a jail to a template
# feedback: rhatto@riseup.net | gpl
#
-# Jail-update is free software; you can redistribute it and/or modify it under the
+# Jail-commit 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.
#
-# Jail-update is distributed in the hope that it will be useful, but WITHOUT ANY
+# Jail-commit 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.
#
diff --git a/trunk/src/jail-update b/trunk/src/jail-update
new file mode 100755
index 0000000..09d1555
--- /dev/null
+++ b/trunk/src/jail-update
@@ -0,0 +1,63 @@
+#!/bin/bash
+#
+# jail-update: update config files from a jail to a template
+# feedback: rhatto@riseup.net | gpl
+#
+# Jail-update 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.
+#
+# Jail-update 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 installation"
+ exit 1
+fi
+
+function usage {
+
+ echo $BASENAME: update a jail configuration from a template
+ echo usage: $BASENAME <jail-path> [template]
+
+}
+
+if [ -z "$1" ]; then
+ usage
+ exit 1
+fi
+
+if [ -z "$2" ]; then
+ template_name="`basename $1`"
+else
+ template_name="$2"
+fi
+
+search_template `basename $1` --update
+
+if [ "$?" != "0" ]; then
+ exit 1
+fi
+
+if [ -d "$TEMPLATE_BASE.d" ]; then
+ true
+fi
+
+if [ -s "$TEMPLATE_BASE.perms" ]; then
+
+fi
+
+copy_template_files $1
+set_jail_perms $1
+
diff --git a/trunk/src/mkjail b/trunk/src/mkjail
index 14b50c9..37bb4ba 100755
--- a/trunk/src/mkjail
+++ b/trunk/src/mkjail
@@ -34,44 +34,6 @@ function usage {
}
-function copy_template_files {
-
- # copy template files into jail
- # usage: copy_template_files <jail-path>
-
- if [ -d "$1" ]; then
- echo "$BASENAME: copying template files..."
- if [ -d "$TEMPLATE_BASE.d" ]; then
- if [ "$TEMPLATES_UNDER_SVN" == "1" ]; then
- rsync -av --exclude=.svn $TEMPLATE_BASE.d/ $JAIL_ROOT/$server/
- else
- rsync -av $TEMPLATE_BASE.d/ $JAIL_ROOT/$server/
- fi
- fi
- fi
-
-}
-
-function set_jail_perms {
-
- # set template file permissions under a jail
- # usage: set_jail_perms <jail-path>
-
- if [ -s "$TEMPLATE_BASE.perms" ]; then
- cat $TEMPLATE_BASE.perms | while read entry; do
- file="`echo $entry | cut -d ";" -f 1`"
- if [ -a "$TEMPLATE_BASE.d/$file" ] && [ -a "$1/$file" ]; then
- owner="`echo entry | cut -d ";" -f 2`"
- group="`echo entry | cut -d ";" -f 3`"
- perms="`echo entry | cut -d ";" -f 4`"
- chmod $perms $1/$file
- chown $owner:$group $1/$file
- fi
- done
- fi
-
-}
-
function exec_post_install_scripts {
# exec post installation scripts
diff --git a/trunk/src/templatepkg b/trunk/src/templatepkg
index 1382759..0a48406 100755
--- a/trunk/src/templatepkg
+++ b/trunk/src/templatepkg
@@ -51,6 +51,10 @@ function usage {
echo ""
echo " $BASENAME -d <template> <file-name>"
echo ""
+ echo " -s | --sync: sync a template working copy; arguments are:"
+ echo ""
+ echo " $BASENAME -d <template>"
+ echo ""
echo " in all cases (-c, -u and -a), jail-root defaults to /, if ommited"
echo ""
exit 1
@@ -214,6 +218,15 @@ elif [ "$1" == "-d" ] || [ "$1" == "--delete" ]; then
fi
+elif [ "$1" == "-s" ] || [ "$1" == "--sync" ]; then
+
+ if [ "$TEMPLATES_UNDER_SVN" == "1" ]; then
+ if [ -d "$TEMPLATE_BASE.d/.svn" ]; then
+ ( cd $TEMPLATE_BASE.d && svn update )
+ true
+ fi
+ fi
+
else
usage
fi