Initial orientator
This commit is contained in:
47
cmd/orientator/main.go
Normal file
47
cmd/orientator/main.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"orientator/internal/server"
|
||||
)
|
||||
|
||||
func main() {
|
||||
addr := flag.String("addr", envOr("ADDR", ":8080"), "listen address")
|
||||
flag.Parse()
|
||||
|
||||
srv := &http.Server{
|
||||
Addr: *addr,
|
||||
Handler: server.New().Handler(),
|
||||
ReadTimeout: 15 * time.Minute,
|
||||
WriteTimeout: 15 * time.Minute,
|
||||
MaxHeaderBytes: 1 << 20,
|
||||
}
|
||||
|
||||
go func() {
|
||||
log.Printf("orientator listening on %s", *addr)
|
||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}()
|
||||
|
||||
sig := make(chan os.Signal, 1)
|
||||
signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sig
|
||||
fmt.Println("\nshutting down")
|
||||
_ = srv.Close()
|
||||
}
|
||||
|
||||
func envOr(k, def string) string {
|
||||
if v := os.Getenv(k); v != "" {
|
||||
return v
|
||||
}
|
||||
return def
|
||||
}
|
||||
41
cmd/testfixture/main.go
Normal file
41
cmd/testfixture/main.go
Normal file
@@ -0,0 +1,41 @@
|
||||
// testfixture renders page 1 of a PDF as upright PNG and as a 90°-rotated PNG.
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"image"
|
||||
"image/png"
|
||||
"os"
|
||||
|
||||
"github.com/gen2brain/go-fitz"
|
||||
"orientator/internal/pipeline"
|
||||
)
|
||||
|
||||
func main() {
|
||||
if len(os.Args) < 4 {
|
||||
fmt.Println("usage: testfixture <in.pdf> <upright.png> <rotated90.png>")
|
||||
os.Exit(2)
|
||||
}
|
||||
doc, err := fitz.New(os.Args[1])
|
||||
must(err)
|
||||
defer doc.Close()
|
||||
img, err := doc.ImageDPI(0, 150)
|
||||
must(err)
|
||||
writePNG(os.Args[2], img)
|
||||
writePNG(os.Args[3], pipeline.RotateImage(img, 90))
|
||||
fmt.Println("ok")
|
||||
}
|
||||
|
||||
func writePNG(path string, img image.Image) {
|
||||
f, err := os.Create(path)
|
||||
must(err)
|
||||
defer f.Close()
|
||||
must(png.Encode(f, img))
|
||||
}
|
||||
|
||||
func must(err error) {
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user