summaryrefslogtreecommitdiff
path: root/cmd/fonttobytes/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/fonttobytes/main.go')
-rw-r--r--cmd/fonttobytes/main.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/cmd/fonttobytes/main.go b/cmd/fonttobytes/main.go
new file mode 100644
index 0000000..8310e0f
--- /dev/null
+++ b/cmd/fonttobytes/main.go
@@ -0,0 +1,49 @@
+package main
+
+import (
+ "bytes"
+ "compress/zlib"
+ "flag"
+ "fmt"
+ "io/ioutil"
+ "log"
+ "os"
+)
+
+func main() {
+ flag.Usage = func() {
+ fmt.Fprintln(flag.CommandLine.Output(), "Usage: fonttobytes font.ttf")
+ flag.PrintDefaults()
+ }
+ flag.Parse()
+
+ if flag.NArg() != 1 {
+ flag.Usage()
+ return
+ }
+
+ f, err := os.Open(flag.Arg(0))
+ if err != nil {
+ log.Fatalln("Failed to open file", flag.Arg(0), err)
+ }
+ fontbytes, err := ioutil.ReadAll(f)
+ if err != nil {
+ log.Fatalln("Failed to read file", flag.Arg(0), err)
+ }
+
+ var compressed bytes.Buffer
+ w := zlib.NewWriter(&compressed)
+ w.Write(fontbytes)
+ w.Close()
+
+ // This could be done with %+v in printf, but using the decimal rather than
+ // hex output saves quite a few bytes, so we do that instead.
+ fmt.Printf("[]byte{")
+ for i, b := range compressed.Bytes() {
+ if i > 0 {
+ fmt.Printf(", ")
+ }
+ fmt.Printf("%d", b)
+ }
+ fmt.Printf("}\n")
+}