all: re-organize build/release

- extract steps into shell files
- fix GoReleaser builds (I hope)
- rely more on the toolchain for version information
- allow non-standard builds, but print a warning

Suggested-by: Marc-Antoine Ruel <maruel@gmail.com>
diff --git a/build/clean.sh b/build/clean.sh
new file mode 100755
index 0000000..d6117da
--- /dev/null
+++ b/build/clean.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+set -e
+
+rm -f sketch
+rm -rf embedded/sketch-linux embedded/webui-dist
+rm -rf webui/node_modules webui/dist
\ No newline at end of file
diff --git a/build/innie.sh b/build/innie.sh
new file mode 100755
index 0000000..b353f42
--- /dev/null
+++ b/build/innie.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -e
+
+CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS:-}" -tags=innie -o embedded/sketch-linux/sketch-linux-amd64 ./cmd/sketch
+CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="${LDFLAGS:-}" -tags=innie -o embedded/sketch-linux/sketch-linux-arm64 ./cmd/sketch
diff --git a/build/outie.sh b/build/outie.sh
new file mode 100755
index 0000000..f267167
--- /dev/null
+++ b/build/outie.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -e
+
+# Note: This incantation is duplicated in .goreleaser.yml; please keep them in sync.
+go build -ldflags="${LDFLAGS:-}" -tags=outie -o sketch ./cmd/sketch
diff --git a/build/webui.sh b/build/webui.sh
new file mode 100755
index 0000000..0dfc2ed
--- /dev/null
+++ b/build/webui.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -e
+
+rm -rf embedded/webui-dist
+unset GOOS GOARCH && go run ./cmd/genwebui -- embedded/webui-dist