shopt -s extglob nullglob
+if [[ ${1:0:1} == - ]]; then
+ v=$1
+ shift 1
+else
+ v=
+fi
+
function df_() {
free=$(df -B1 "$1")
free=${free% *%*}
function mv_() {
src=$1
- dst=$2
- if [[ -e ${dst} ]]; then
- dst=$(mktemp -d /var/cydia.XXXXXX)
- else
- mkdir -p "${dst}"
- fi
+ mkdir -p /var/stash
+ dst=$(mktemp -d /var/stash/"${src##*/}".XXXXXX)
if [[ -e ${src} ]]; then
chmod --reference="${src}" "${dst}"
chown --reference="${src}" "${dst}"
- cp -aT "${src}" "${dst}" || {
+ cp -aT $v "${src}" "${dst}" || {
rm -rf "${dst}"
exit 1
}
- rm -rf "${src}"
+ rm -rf $v "${src}"
else
chmod 775 "${dst}"
chown root.admin "${dst}"
}
function shift_() {
- dir=$1
- dst=$2
+ dir=${1%/}
if [[ -d ${dir} && ! -h ${dir} ]]; then
- used=$(du -bs "${dir}")
+ used=$(/usr/libexec/cydia/du -bs "${dir}")
used=${used%%$'\t'*}
free=$(df_ /var)
if [[ $((used + 524288)) -lt ${free} ]]; then
- mv_ "${dir}" "${dst}"
+ mv_ "${dir}"
fi
- elif [[ -h ${dir} && ! -e ${dir} ]]; then
+ elif [[ ! -e ${dir} ]]; then
rm -f "${dir}"
- mv_ "${dir}" "${dst}"
+ mv_ "${dir}"
fi
}