debian/cubicweb-ctl.postinst
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Mon, 05 Jul 2010 18:25:19 +0200
changeset 5891 99024ad59223
parent 1448 62f099f0916f
child 10559 5821ae654dfd
permissions -rw-r--r--
[schema migration] import refactoring to fix #1109558 and enhances things on the way the main pb demonstrated by #1109558 was due to the fact that in-memory schema was updated in commit_event of operations. This is undesired in most cases, since we want the modification to be taken into account in the interval between the modification detection and the commit_event. I've fixed this by merging in-memory schema / database alteration operations for most important changes, doing in-memory schema changes as they are detected and implementing a revertcommit_event method to revert them if necessary (with exception for removal of stuff from the schema, where this is simply done in a postcommit_event methods). Also, I've benefited from this to support reverting of database alteration for some operations (more to be done there), and to move so system source alteration code to the native source code for a nicer design. There may be some more stuff in syncschema.py that would benefit from similar changes, but most important things are done (at least to close #1109558, w/ unittest_syncschema and unittest_migration green).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     1
#! /bin/sh -e
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     2
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     3
case "$1" in
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     4
    configure|abort-upgrade|abort-remove|abort-deconfigure)
462
c6e313c7a2e0 use 99 as default sequence number in runlevel
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 241
diff changeset
     5
        update-rc.d cubicweb defaults 99 >/dev/null
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     6
    ;;
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     7
    *)
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     8
        echo "postinst called with unknown argument \`$1'" >&2
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     9
        exit 1
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    10
    ;;
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    11
esac
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    12
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    13
if [ "$1" = configure ]; then
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    14
    # XXX bw compat: erudi -> cubicweb migration
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    15
    if [ -e "/etc/erudi.d/" ]; then
1448
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    16
      mv /etc/erudi.d/* /etc/cubicweb.d/ && (
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    17
	  echo 'moved /etc/erudi.d/* to /etc/cubicweb.d/'
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    18
	  sed -i s/ginco/cubicweb/g /etc/*/*.py
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    19
	  sed -i s/erudi/cubicweb/ */*.conf
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    20
	  ) || true # empty dir
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    21
    fi
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    22
    if [ -e "/var/log/erudi/" ]; then
1448
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    23
      mv /var/log/erudi/* /var/log/cubicweb/ && (
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    24
	  echo 'moved /var/log/erudi/* to /var/log/cubicweb/'
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    25
	  ) || true # empty dir
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    26
    fi
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    27
    if [ -e "/var/lib/erudi/backup" ]; then
1448
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    28
      mv /var/lib/erudi/backup/* /var/lib/cubicweb/backup/ && (
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    29
	  echo 'moved /var/lib/erudi/backup/* to /var/lib/cubicweb/backup/'
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    30
	  ) || true # empty dir
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    31
    fi
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    32
    if [ -e "/var/lib/erudi/instances" ]; then
1448
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    33
      mv /var/lib/erudi/instances/* /var/lib/cubicweb/instances/ && (
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    34
	  echo 'moved /var/lib/erudi/instances/* to /var/lib/cubicweb/instances/'
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    35
	  ) || true # empty dir
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    36
    fi
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    37
fi
1448
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    38
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    39
#DEBHELPER#
1448
62f099f0916f deals with empty erudi directories
sylvain.thenault@logilab.fr
parents: 462
diff changeset
    40
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    41
exit 0