tcuesplit.sh - scripts - random scripts
HTML git clone https://git.parazyd.org/scripts
DIR Log
DIR Files
DIR Refs
---
tcuesplit.sh (1110B)
---
1 #!/bin/sh
2 #dependencies: cuetools, shntool, flac
3
4 if [ $# -ne 2 ] || [ "$1" = "-h" ]
5 then
6 printf "Usage: %s image cue\n" "$0"
7 exit 1
8 fi
9
10 MUSIC_DIR="$HOME/Data/Music"
11 ARTIST="$(tr -d '\r' < "$2" | grep -F PERFORMER | head -n 1 | sed -e 's#.*"\(.*\)"#\1#' -e 's#/#_#g')"
12 ALBUM="$(tr -d '\r' < "$2" | grep -F TITLE | head -n 1 | sed -e 's#.*"\(.*\)"#\1#' -e 's#/#_#g')"
13 DATE="$(tr -d '\r' < "$2" | grep -F 'REM DATE' | head -n 1 | cut -d ' ' -f 3)"
14
15 split()
16 {
17 mkdir -p split
18 shnsplit -d split -f "$2" -o "flac flac -V -8 -o %f -" "$1" -t "%n - %t"
19 rm -- split/00*pregap*
20 }
21
22 tag()
23 {
24 cuetag.sh "$1" split/*.flac
25 # add the date tag since cuetag can't do it
26 if [ -n "$DATE" ]
27 then
28 metaflac --set-tag="date=$DATE" split/*.flac
29 fi
30 printf 'Calculating replay gain values...'
31 metaflac --add-replay-gain split/*.flac
32 }
33
34 movedir()
35 {
36 printf 'Move split/ to "%s/%s/(%s) %s"? y/n' "$MUSIC_DIR" "$ARTIST" "$DATE" "$ALBUM"
37 read -r CHOICE
38 if [ "$CHOICE" = "y" ]
39 then
40 mkdir -p -- "$MUSIC_DIR/$ARTIST/($DATE) $ALBUM"
41 mv -T -- split "$MUSIC_DIR/$ARTIST/($DATE) $ALBUM"
42 fi
43 }
44
45 split "$1" "$2"
46 tag "$2"
47 movedir