first commit
This commit is contained in:
61
Library/move.sh
Executable file
61
Library/move.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
shopt -s extglob nullglob
|
||||
|
||||
if [[ ${1:0:1} == - ]]; then
|
||||
v=$1
|
||||
shift 1
|
||||
else
|
||||
v=
|
||||
fi
|
||||
|
||||
function df_() {
|
||||
free=$(df -B1 "$1")
|
||||
free=${free% *%*}
|
||||
free=${free%%*( )}
|
||||
free=${free##* }
|
||||
echo "${free}"
|
||||
}
|
||||
|
||||
function mv_() {
|
||||
src=$1
|
||||
|
||||
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 $v "${src}" "${dst}" || {
|
||||
rm -rf "${dst}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
rm -rf $v "${src}"
|
||||
else
|
||||
chmod 775 "${dst}"
|
||||
chown root.admin "${dst}"
|
||||
fi
|
||||
|
||||
ln -s "${dst}" "${src}"
|
||||
}
|
||||
|
||||
function shift_() {
|
||||
dir=${1%/}
|
||||
|
||||
if [[ -d ${dir} && ! -h ${dir} ]]; then
|
||||
used=$(/usr/libexec/cydia/du -bs "${dir}")
|
||||
used=${used%%$'\t'*}
|
||||
free=$(df_ /var)
|
||||
|
||||
if [[ $((used + 524288)) -lt ${free} ]]; then
|
||||
mv_ "${dir}"
|
||||
fi
|
||||
elif [[ ! -e ${dir} ]]; then
|
||||
rm -f "${dir}"
|
||||
mv_ "${dir}"
|
||||
fi
|
||||
}
|
||||
|
||||
shift_ "$@"
|
||||
Reference in New Issue
Block a user