diff options
author | Kevin Wallace <kevin@pentabarf.net> | 2015-05-06 23:17:04 -0700 |
---|---|---|
committer | Kevin Wallace <kevin@pentabarf.net> | 2015-05-06 23:24:42 -0700 |
commit | b80919a9c022eb23f1c22313cd89864f910e9914 (patch) | |
tree | 9dbc9c47dd9ce3ae69c608f5d84cfe2c2240742a /generate.sh |
initial commit
Diffstat (limited to 'generate.sh')
-rwxr-xr-x | generate.sh | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/generate.sh b/generate.sh new file mode 100755 index 0000000..7c431ec --- /dev/null +++ b/generate.sh @@ -0,0 +1,43 @@ +#!/bin/sh +if [ $# != 1 ]; then + echo >&2 "usage: $(basename "$0") <filename.wav>" + exit 1 +fi + +filename="$1" +name="$(basename -s .wav "${filename}")" +root="$(dirname "$0")" + +mkdir -p "${root}/cmd/${name}" +cp "${filename}" "${root}/cmd/${name}/${name}.wav" +gofmt > "${root}/cmd/${name}/${name}.go" << EOF +package main + +import ( + "io/ioutil" + "os" + "os/exec" +) + +//go:generate ../../generate.sh ${name}.wav +func main() { + f, err := ioutil.TempFile(os.TempDir(), "${name}") + if err != nil { + panic(err) + } + defer os.Remove(f.Name()) + if _, err := f.Write(${name}); err != nil { + panic(err) + } + cmd := exec.Command("afplay", f.Name()) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if err := cmd.Run(); err != nil { + panic(err) + } +} + +var ${name} = []byte{ + $(xxd -i < "${filename}" | sed 's/\([^,]\)$/\1,/') +} +EOF
\ No newline at end of file |