|
|
@@ -33,8 +33,9 @@ |
|
|
|
# delete all unused sources! You have been warned. |
|
|
|
# |
|
|
|
|
|
|
|
DRY_RUN=no |
|
|
|
ONLY_COMPACTED=no |
|
|
|
DRY_RUN= |
|
|
|
ONLY_COMPACTED= |
|
|
|
MOVE=1 |
|
|
|
|
|
|
|
fatal () |
|
|
|
{ |
|
|
@@ -63,19 +64,27 @@ remove_sources () |
|
|
|
while read FILE |
|
|
|
do |
|
|
|
|
|
|
|
SIZE=`stat -c '%s' "${FILE}" 2>/dev/null` |
|
|
|
PSIZE=`stat -c '%s' "${FILE}.peak" 2>/dev/null` |
|
|
|
SIZE=`stat -c '%s' "${FILE}" 2>/dev/null` |
|
|
|
|
|
|
|
PSIZE=${PSIZE:-0} |
|
|
|
|
|
|
|
if [ $? -ne 0 ] |
|
|
|
if ! [ -f "${FILE}" ] |
|
|
|
then |
|
|
|
echo "Would remove \"${FILE}\", if it existed." |
|
|
|
else |
|
|
|
if [ $DRY_RUN = yes ] |
|
|
|
if [ "$DRY_RUN" = 1 ] |
|
|
|
then |
|
|
|
echo "Would remove: ${FILE}" |
|
|
|
else |
|
|
|
echo "Removing unused source \"${FILE}\"..." |
|
|
|
rm -f ./"${FILE}" ./"${FILE}".peak |
|
|
|
if [ "$MOVE" = 1 ] |
|
|
|
then |
|
|
|
echo "Moving unused source \"${FILE}\"..." |
|
|
|
mv -f ./"${FILE}" ./"${FILE}".peak ../unused-sources |
|
|
|
else |
|
|
|
echo "Removing unused source \"${FILE}\"..." |
|
|
|
rm -f ./"${FILE}" ./"${FILE}".peak |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
TOTAL=$(( $TOTAL + $SIZE + $PSIZE )) |
|
|
@@ -86,33 +95,48 @@ remove_sources () |
|
|
|
echo "...Freeing a total of $(($TOTAL / ( 1024 * 1024 ) ))MB" |
|
|
|
} |
|
|
|
|
|
|
|
[ $# -gt 0 ] || fatal "Usage: $0 [--dry-run] path/to/project" |
|
|
|
usage () |
|
|
|
{ |
|
|
|
fatal "Usage: $0 [-n] [-c] [-m|-d] path/to/project" |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if [ "$1" = --dry-run ] |
|
|
|
then |
|
|
|
DRY_RUN=yes |
|
|
|
shift 1 |
|
|
|
fi |
|
|
|
while getopts "dmnc" o |
|
|
|
do |
|
|
|
case "$o" in |
|
|
|
d) MOVE= ;; |
|
|
|
m) MOVE=1 ;; |
|
|
|
n) DRY_RUN=1 ;; |
|
|
|
c) ONLY_COMPACTED=1 ;; |
|
|
|
\?) usage ;; |
|
|
|
*) echo "$o" && usage ;; |
|
|
|
esac |
|
|
|
done |
|
|
|
|
|
|
|
shift $(( $OPTIND - 1 )) |
|
|
|
PROJECT="$1" |
|
|
|
|
|
|
|
[ $# -eq 1 ] || usage |
|
|
|
|
|
|
|
cd "$PROJECT" || fatal "No such project" |
|
|
|
|
|
|
|
[ -f history ] && [ -f info ] || fatal "Not a Non-DAW project?" |
|
|
|
|
|
|
|
[ -f .lock ] && fatal "Project appears to be in use" |
|
|
|
|
|
|
|
if [ $ONLY_COMPACTED = yes ] |
|
|
|
if [ "$ONLY_COMPACTED" = 1 ] |
|
|
|
then |
|
|
|
grep -v '\(^\{\|\}$\)\|create' history && fatal "Not a compacted project" |
|
|
|
fi |
|
|
|
|
|
|
|
echo "Scanning \"${PROJECT}\"..." |
|
|
|
|
|
|
|
sed -n 's/^\s\+Audio_Region.* :source "\([^"]\+\)".*$/\1/p' history | sort | uniq > "${TEMP}/used-sources" |
|
|
|
sed -n 's/^\s*Audio_Region.* :source "\([^"]\+\)".*$/\1/p' history | sort | uniq > "${TEMP}/used-sources" |
|
|
|
|
|
|
|
cd sources || fatal "Can't change to source directory" |
|
|
|
|
|
|
|
[ "$MOVE" = 1 ] && mkdir ../unused-sources 2>/dev/null |
|
|
|
|
|
|
|
ls -1 | grep -v '\.peak$' | sort > "${TEMP}/all-sources" |
|
|
|
|
|
|
|
set_diff "${TEMP}/all-sources" "${TEMP}/used-sources" | remove_sources |
|
|
|