OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /v/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src                      Date:   09-May-2008 09:20:19
  Branch: HEAD                             Handle: 2008050908201701

  Modified files:
    openpkg-src/drupal      drupal-setup.sh drupal.spec

  Log:
    add Drupal convenient database backup/restore possibilities (intended
    for archiving purposes and performing risky changes in the
    administration panel like enabling modules, etc)

  Summary:
    Revision    Changes     Path
    1.14        +54 -3      openpkg-src/drupal/drupal-setup.sh
    1.233       +3  -1      openpkg-src/drupal/drupal.spec
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/drupal/drupal-setup.sh
  ============================================================================
  $ cvs diff -u -r1.13 -r1.14 drupal-setup.sh
  --- openpkg-src/drupal/drupal-setup.sh        29 Feb 2008 18:48:33 -0000      
1.13
  +++ openpkg-src/drupal/drupal-setup.sh        9 May 2008 07:20:17 -0000       
1.14
  @@ -4,15 +4,19 @@
   ##
   
   #   command line argument sanity check
  +prg="$0"
   if [ $# -eq 0 ]; then
  -    echo "$0:ERROR: invalid command line" 1>&2
  -    echo "$0:USAGE: $0 install [<database-directory>]" 1>&2
  -    echo "$0:USAGE: $0 uninstall" 1>&2
  +    echo "$prg:ERROR: invalid command line" 1>&2
  +    echo "$prg:USAGE: $prg install [<database-directory>]" 1>&2
  +    echo "$prg:USAGE: $prg uninstall" 1>&2
  +    echo "$prg:USAGE: $prg backup [<dump-file>]" 1>&2
  +    echo "$prg:USAGE: $prg restore [<dump-file>|<dump-number>]" 1>&2
       exit 1
   fi
   
   #   database configuration
   db_dir="@l_prefix@/var/drupal/db"
  +db_dump="@l_prefix@/var/drupal/dump"
   db_type="@l_dbtype@"
   db_name="drupal"
   db_user="drupal"
  @@ -76,5 +80,52 @@
           #   remove the generated configuration
           rm -f @l_prefix@/share/drupal/sites/default/settings.php
           ;;
  +    backup )
  +        #   backup the database
  +        if [ $# -gt 0 ]; then
  +            dumpfile="$1"
  +        else
  +            rm -f $db_dump/drupal-dump-9.sql.gz >/dev/null 2>&1 || true
  +            i=8
  +            while [ $i -ge 0 ]; do
  +                if [ -f $db_dump/drupal-dump-$i.sql.bz2 ]; then
  +                    mv $db_dump/drupal-dump-$i.sql.bz2 
$db_dump/drupal-dump-`expr $i + 1`.sql.bz2
  +                fi
  +                i=`expr $i - 1`
  +            done
  +            dumpfile="$db_dump/drupal-dump-0.sql.bz2"
  +        fi
  +        if [ ".$db_type" = .mysql ]; then
  +            @l_prefix@/bin/mysqldump --user="$db_suser" 
--password="$db_spass" "$db_name" | \
  +            @l_prefix@/lib/openpkg/bzip2 -9 >$dumpfile
  +        elif [ ".$db_type" = .pgsql ]; then
  +            PGPASSWORD="$db_spass" @l_prefix@/bin/pq_dump -U "$db_suser" 
"$db_sname" -f- | \
  +            @l_prefix@/lib/openpkg/bzip2 -9 >$dumpfile
  +        fi
  +        ;;
  +    restore )
  +        #   restore the database
  +        if [ $# -gt 0 ]; then
  +            dumpfile="$1"
  +        else
  +            dumpfile="0"
  +        fi
  +        case "$dumpfile" in
  +            [0-9] ) dumpfile="$db_dump/drupal-dump-$dumpfile.sql.bz2" ;;
  +        esac
  +        if [ ! -f $dumpfile ]; then
  +            echo "drupal-setup:restore:ERROR: no dump such dump file: 
$dumpfile" 1>&2
  +            exit 1
  +        fi
  +        $prg uninstall || exit $?
  +        $prg install   || exit $?
  +        if [ ".$db_type" = .mysql ]; then
  +            @l_prefix@/lib/openpkg/bzip2 -d -c $dumpfile | \
  +            @l_prefix@/bin/mysql --user="$db_suser" --password="$db_spass" 
"$db_sname" 
  +        elif [ ".$db_type" = .pgsql ]; then
  +            @l_prefix@/lib/openpkg/bzip2 -d -c $dumpfile | \
  +            PGPASSWORD="$db_spass" @l_prefix@/bin/psql -q -U "$db_suser" -d 
"$db_sname" -f-
  +        fi
  +        ;;
   esac
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/drupal/drupal.spec
  ============================================================================
  $ cvs diff -u -r1.232 -r1.233 drupal.spec
  --- openpkg-src/drupal/drupal.spec    8 May 2008 17:57:10 -0000       1.232
  +++ openpkg-src/drupal/drupal.spec    9 May 2008 07:20:18 -0000       1.233
  @@ -208,7 +208,7 @@
   Group:        CMS
   License:      GPL
   Version:      %{V_drupal}
  -Release:      20080508
  +Release:      20080509
   
   #   package options
   %option       with_mysql   yes
  @@ -1488,6 +1488,7 @@
           $RPM_BUILD_ROOT%{l_prefix}/var/drupal/files \
           $RPM_BUILD_ROOT%{l_prefix}/var/drupal/run \
           $RPM_BUILD_ROOT%{l_prefix}/var/drupal/log \
  +        $RPM_BUILD_ROOT%{l_prefix}/var/drupal/dump \
           $RPM_BUILD_ROOT%{l_prefix}/var/drupal/db
   
       #   avoid copying unnecessary text files
  @@ -1630,6 +1631,7 @@
           rm -f $RPM_INSTALL_PREFIX/var/drupal/files/* >/dev/null 2>&1 || true
           rm -f $RPM_INSTALL_PREFIX/var/drupal/log/*   >/dev/null 2>&1 || true
           rm -f $RPM_INSTALL_PREFIX/var/drupal/run/*   >/dev/null 2>&1 || true
  +        rm -f $RPM_INSTALL_PREFIX/var/drupal/dump/*  >/dev/null 2>&1 || true
           rm -f $RPM_INSTALL_PREFIX/var/drupal/db/*    >/dev/null 2>&1 || true
       fi
       exit 0
  @@ .
______________________________________________________________________
OpenPKG                                             http://openpkg.org
CVS Repository Commit List                     [email protected]

Reply via email to