]> gitweb.fluxo.info Git - simplepkg.git/commitdiff
added jail-update and --sync option for templatepkg
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Sun, 11 Feb 2007 20:36:17 +0000 (20:36 +0000)
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Sun, 11 Feb 2007 20:36:17 +0000 (20:36 +0000)
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@185 04377dda-e619-0410-9926-eae83683ac58

trunk/lib/common.sh
trunk/src/jail-commit
trunk/src/jail-update [new file with mode: 0755]
trunk/src/mkjail
trunk/src/templatepkg

index d0fde3c4032fbaed4a87502844343e8608c7e697..5785223423aef12d4e7307f0c737479df3cd5b49 100644 (file)
@@ -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
+
+}
+
index 8de547c9059030c6d4670aa9dc9406fffd932abf..d6e18f392d6c523f02a451e1313c4880bcbb57c0 100755 (executable)
@@ -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 (executable)
index 0000000..09d1555
--- /dev/null
@@ -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
+
index 14b50c98514820793b7390487a33a3468177080e..37bb4ba9dda7d004c8ea57d9d6c2334036a88e65 100755 (executable)
@@ -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
index 1382759413b6612333ee926da8fe118baf60c6b7..0a484068ecc3a76af495a4c117bd8e108124789a 100755 (executable)
@@ -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