Assists music production by grouping standalone programs into sessions. Community version of "Non Session Manager".
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #!/bin/sh
-
- ## remove-unused-sources
- #
- # April 2008, Jonathan Moore Liles
- #
- # Simple script to scan a compacted Non-DAW session and remove all
- # unused sources from disk.
- #
- # USAGE:
- #
- # $ remove-unused-sources ~/audio/'The Best Song Ever'
- #
- # NOTES:
- #
- # This script will not ask for comfirmation! It will ruthlessly
- # delete all unused sources! You have been warned.
- #
-
- SESSION="$1"
-
- fatal ()
- {
- echo Error: "$1"
- echo 'Aborting!'
- cleanup
- exit 1
- }
-
- set_diff ()
- {
- diff --new-line-format '' --old-line-format '%L' --unchanged-line-format '' "$1" "$2"
- }
-
- remove_sources ()
- {
- local FILE
- while read FILE
- do
- echo "Removing source \"${FILE}\"..."
-
- rm -f ./"${FILE}" ./"${FILE}-"*.peak
- done
- }
-
- cleanup ()
- {
- rm -f "${TEMP}/all-sources" "${TEMP}/used-sources"
- }
-
- cd "$SESSION" || fatal "No such session"
-
- [ -f history ] || fatal "Not a Non-DAW session?"
-
- grep -qv 'create' history && fatal "Not a compacted session"
-
- echo "Scanning \"${SESSION}\"..."
-
- sed -n 's/^Region.* :source "\([^"]\+\)".*$/\1/p' history | sort | uniq > "${TEMP}/used-sources"
-
- cd sources || fatal "Can't change to source directory"
-
- ls -1 | grep -v '\.peak$' | sort > "${TEMP}/all-sources"
-
- set_diff "${TEMP}/all-sources" "${TEMP}/used-sources" | remove_sources
-
- cleanup
-
- echo "Done."
|