1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
#!/bin/bash -e
. /usr/share/debconf/confmodule
test $DEBIAN_SCRIPT_DEBUG && set -v -x
is_true() {
case $1 in
1|true|True|TRUE|y*|Y*) return 0;;
*) return 1;;
esac
}
CONFFILE=/etc/default/fuse-utils
[[ -f $CONFFILE ]] && . $CONFFILE
[[ -n $FUSE_GROUP ]] && db_set fuse-utils/group $FUSE_GROUP || true
if [[ -n $FUSE_GROUPDELETE ]]; then
is_true $FUSE_GROUPDELETE && GROUPDELETE=true
db_set fuse-utils/groupdelete ${GROUPDELETE:-false} || true
fi
STATE_BEGIN=0
STATE_END=5
do_rename_group() {
[[ -n $FUSE_GROUP ]] && [[ $FUSE_GROUP != $NEWGROUP ]]
}
db_capb backup
STATE=$STATE_BEGIN
while [[ $STATE -ge $STATE_BEGIN ]] && [[ $STATE -lt $STATE_END ]]; do
case $STATE in
0)
db_input medium fuse-utils/group || true
db_go || RET=$?
[[ $RET -eq 30 ]] && continue
db_get fuse-utils/group || true
NEWGROUP=$RET
;;
1)
if ! do_rename_group; then
db_set fuse-utils/grouprenamedelete false || true
STATE=3
continue
fi
db_get fuse-utils/groupdelete || true
db_set fuse-utils/grouprenamedelete $RET || true
db_input medium fuse-utils/grouprenamedelete || true
db_go || RET=$?
[[ $RET -eq 30 ]] && true $((STATE--)) && continue
;;
2)
db_input medium fuse-utils/grouprenamemigrate || true
db_go || RET=$?
[[ $RET -eq 30 ]] && true $((STATE--)) && continue
;;
3)
if getent group $NEWGROUP >/dev/null; then
db_set fuse-utils/groupcreate false || true
STATE=$STATE_END
continue
fi
db_input medium fuse-utils/groupcreate || true
db_go || RET=$?
if [[ $RET -eq 30 ]]; then
do_rename_group && true $((STATE--)) && continue
STATE=0 && continue
fi
;;
4)
db_get fuse-utils/groupcreate || true
if [[ $RET = true ]]; then
db_input medium fuse-utils/groupdelete || true
db_go || RET=$?
[[ $RET -eq 30 ]] && true $((STATE--)) && continue
else
db_set fuse-utils/groupdelete false || true
fi
STATE=$STATE_END
;;
esac
STATE=$((STATE + 1))
done
exit 0
|