debian/cubicweb-ctl.postinst
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Wed, 07 Mar 2012 16:09:55 +0100
branchstable
changeset 8296 f23782a2cdee
parent 1448 62f099f0916f
child 10559 5821ae654dfd
permissions -rw-r--r--
rqlrewrite: remove element in rewritten when we remove them from the select (closes #2236985) update _cleanup_inserted to avoid leaving rewritten variable behind when removing a snipset. insert_varmap_snippets was impacted too for unclear reason --- Before A KeyError was raised when: * multiple snipset is to be inserted on a statement * some *supported* snipset adds ambiguity (increase the number of solution) * some *unsupported* snipset adds new variable * The new variable require rewritting :: File "/home/pyves/src/fcw/cubicweb/rqlrewrite.py", line 185, in rewrite newsolutions = self.remove_ambiguities(snippets, newsolutions) File "/home/pyves/src/fcw/cubicweb/rqlrewrite.py", line 436, in remove_ambiguities variantes = self.build_variantes(newsolutions) File "/home/pyves/src/fcw/cubicweb/devtools/repotest.py", line 340, in _build_variantes variantes = _orig_build_variantes(self, newsolutions) File "/home/pyves/src/fcw/cubicweb/rqlrewrite.py", line 470, in build_variantes variante.append( (key, sol[newvar]) ) KeyError: u'D' This happen because the mechanism removing unsupported snipset does not remove entry in ``self.rewritten`` when it removes entry from ``self.select.defined_vars``. Iteration on ``self.rewritten`` then crash because values of ``rewritten`` are expected to be found in solution.

#! /bin/sh -e

case "$1" in
    configure|abort-upgrade|abort-remove|abort-deconfigure)
        update-rc.d cubicweb defaults 99 >/dev/null
    ;;
    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

if [ "$1" = configure ]; then
    # XXX bw compat: erudi -> cubicweb migration
    if [ -e "/etc/erudi.d/" ]; then
      mv /etc/erudi.d/* /etc/cubicweb.d/ && (
	  echo 'moved /etc/erudi.d/* to /etc/cubicweb.d/'
	  sed -i s/ginco/cubicweb/g /etc/*/*.py
	  sed -i s/erudi/cubicweb/ */*.conf
	  ) || true # empty dir
    fi
    if [ -e "/var/log/erudi/" ]; then
      mv /var/log/erudi/* /var/log/cubicweb/ && (
	  echo 'moved /var/log/erudi/* to /var/log/cubicweb/'
	  ) || true # empty dir
    fi
    if [ -e "/var/lib/erudi/backup" ]; then
      mv /var/lib/erudi/backup/* /var/lib/cubicweb/backup/ && (
	  echo 'moved /var/lib/erudi/backup/* to /var/lib/cubicweb/backup/'
	  ) || true # empty dir
    fi
    if [ -e "/var/lib/erudi/instances" ]; then
      mv /var/lib/erudi/instances/* /var/lib/cubicweb/instances/ && (
	  echo 'moved /var/lib/erudi/instances/* to /var/lib/cubicweb/instances/'
	  ) || true # empty dir
    fi
fi

#DEBHELPER#

exit 0