[migration] Test and fix case of addition of an attribute with some serialized constraint
It was crashing on attempt to remove an unexisting constraint. This code may be
removed safely as it's expected to be handled by the constraint removal hook.
Notice that adding a vocabulary on shortpara makes yams change the varchar max
size. This is arguable but not the point of this test, so simply adapt the max
size defined in the schema coherently so we don't have to bother with that at
this point.
Grafted from f87da59faea1 in default branch.
# -*- shell-script -*-
_ec_commands()
{
local commands
commands="$("$ec" listcommands 2>/dev/null)" || commands=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$commands' -- "$cur"))
}
_ec()
{
local cur prev cmd cmd_index opts i
local ec="$1"
COMPREPLY=()
cur="$2"
prev="$3"
# searching for the command
# (first non-option argument that doesn't follow a global option that
# receives an argument)
for ((i=1; $i<=$COMP_CWORD; i++)); do
if [[ ${COMP_WORDS[i]} != -* ]]; then
cmd="${COMP_WORDS[i]}"
cmd_index=$i
break
fi
done
if [[ "$cur" == -* ]]; then
if [ -z "$cmd" ]; then
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '--help' -- "$cur"))
else
options="$("$ec" listcommands "$cmd" 2>/dev/null)" || commands=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options' -- "$cur"))
fi
return
fi
if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then
_ec_commands
return
fi
# try to generate completion candidates for whatever command the user typed
if _ec_command_specific; then
return
fi
}
_ec_command_specific()
{
if [ "$(type -t "_ec_cmd_$cmd")" = function ]; then
"_ec_cmd_$cmd"
return 0
fi
case "$cmd" in
client)
if [ "$prev" == "-b" ] || [ "$prev" == "--batch" ]; then
COMPREPLY=( $( compgen -o filenames -G "$cur*" ) )
return
fi
options="$("$ec" listcommands "$cmd" 2>/dev/null)" || options=""
instances="$("$ec" listinstances 2>/dev/null)" || instances=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $instances' -- "$cur"))
;;
db-dump)
if [ "$prev" == "-o" ] || [ "$prev" == "--output" ]; then
COMPREPLY=( $( compgen -o filenames -G "$cur*" ) )
return
fi
options="$("$ec" listcommands "$cmd" 2>/dev/null)" || options=""
instances="$("$ec" listinstances 2>/dev/null)" || instances=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $instances' -- "$cur"))
;;
# commands with template as argument
i18ncube)
cubes="$("$ec" listcubes 2>/dev/null)" || cubes=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $cubes' -- "$cur"))
;;
# generic commands with instance as argument
start|stop|reload|restart|upgrade|start-repository|db-create|db-init|db-check|db-grant-user)
options="$("$ec" listcommands "$cmd" 2>/dev/null)" || options=""
instances="$("$ec" listinstances 2>/dev/null)" || instances=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $instances' -- "$cur"))
;;
# generic commands without argument
list|newtemplate|i18ncubicweb|live-server)
options="$("$ec" listcommands "$cmd" 2>/dev/null)" || options=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $instances' -- "$cur"))
;;
# generic commands without option
shell|i18ninstance|delete|status|schema-sync)
instances="$("$ec" listinstances 2>/dev/null)" || instances=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $instances' -- "$cur"))
;;
# XXX should do better
create)
options="$("$ec" listcommands "$cmd" 2>/dev/null)" || options=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $instances' -- "$cur"))
;;
db-copy,db-restore,mboximport)
instances="$("$ec" listinstances 2>/dev/null)" || instances=""
COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$options $instances' -- "$cur"))
;;
*)
return 1
;;
esac
return 0
}
complete -o bashdefault -o default -F _ec cubicweb-ctl 2>/dev/null \
|| complete -o default -F _ec cubicweb-ctl