Makefile: add pickrand
[cmccabe-bin] / mp3chop.sh
1 #!/usr/bin/env bash
2
3 die() {
4     echo $@
5     exit 1
6 }
7
8 usage() {
9     cat <<EOF
10 mp3chop.sh: divide up mp3s into managable pieces.
11
12 usage: mp3chop.sh: [options] <mp3 names>
13
14 options:
15 -h:           show this help message.
16 -o [dir]:     output directory to use.
17 -s [size]:    segment size to use (default: 5minutes).
18 EOF
19 }
20
21 which mp3splt &> /dev/null || die "you must have mp3splt installed"
22
23 segment_size=5.0
24 output_dir="./out"
25 while getopts  "ho:s:" flag; do
26     case $flag in
27     h)  usage; exit 0;;
28     o)  output_dir=$OPTARG;;
29     s) segment_size=$OPTARG;;
30     *)  echo "getopts error"
31         echo
32         usage
33         exit 1;;
34     esac
35     #echo "$flag" $OPTIND $OPTARG
36 done
37
38 shift $(( OPTIND-1 ))
39
40 mkdir -p "$output_dir" || die "failed to create $output_dir"
41
42 for file in "$@"; do
43     bfile="$(basename "${file}")"
44     absfile="$(readlink -f "${file}")"
45     mkdir -p "${output_dir}/${bfile}.dir"
46     pushd "${output_dir}/${bfile}.dir" &>/dev/null \
47         || die "failed to pushd to ${output_dir}/bfile"
48     ln "$absfile" || die "failed to hardlink ${absfile}"
49     mp3splt -t "${segment_size}" "${bfile}" \
50         || die "mp3splt failed on file ${bfile}"
51     rm -f "$bfile"
52     mv * ..
53     cd ..
54     rmdir "${bfile}.dir" || die "rmdir ${bfile}.dir failed"
55     popd &> /dev/null || die "popd failed"
56 done
57
58 echo "*** SUCCESSFULLY SPLIT ALL ***"