aboutsummaryrefslogtreecommitdiff
path: root/generate.sh
diff options
context:
space:
mode:
authorKevin Wallace <kevin@pentabarf.net>2015-05-06 23:17:04 -0700
committerKevin Wallace <kevin@pentabarf.net>2015-05-06 23:24:42 -0700
commitb80919a9c022eb23f1c22313cd89864f910e9914 (patch)
tree9dbc9c47dd9ce3ae69c608f5d84cfe2c2240742a /generate.sh
initial commit
Diffstat (limited to 'generate.sh')
-rwxr-xr-xgenerate.sh43
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