Add flags to proxy and add license headers.
This commit is contained in:
@@ -1,40 +1,62 @@
|
||||
// Copyright 2021, Henrik Sölver henrik.solver@gmail.com
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"ippserver/packages/ipp"
|
||||
"ippserver/packages/mdnsserver"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"sync"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var (
|
||||
loglevel string
|
||||
location string
|
||||
loglevel string
|
||||
location string
|
||||
port uint
|
||||
printerURI string
|
||||
printerName string
|
||||
ippurl, httpurl *url.URL
|
||||
)
|
||||
|
||||
func init() {
|
||||
flag.StringVar(&loglevel, "loglevel", "info", "The wanted loglevel error/info/debug")
|
||||
flag.StringVar(&location, "location", "somewhere", "locaton of the printer as shown in mDNS")
|
||||
flag.UintVar(&port, "port", 1234, "tcp port")
|
||||
flag.StringVar(&printerURI, "printer", "", "URL to the real printer, typical ipp://printername.local:631/ipp/print")
|
||||
flag.StringVar(&printerName, "name", "ChroBroPrint", "Name of the printer advertised with mDNS")
|
||||
}
|
||||
|
||||
func main() {
|
||||
var err error
|
||||
flag.Parse()
|
||||
customFormatter := new(log.TextFormatter)
|
||||
customFormatter.TimestampFormat = "2006-01-02 15:04:05"
|
||||
log.SetFormatter(customFormatter)
|
||||
customFormatter.FullTimestamp = true
|
||||
log.SetLevel(log.InfoLevel)
|
||||
|
||||
ippurl, err = url.Parse(printerURI)
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to parse printer URL %v", err.Error())
|
||||
return
|
||||
}
|
||||
httpurl, _ = url.Parse(printerURI)
|
||||
httpurl.Scheme = "http"
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
go mdnsserver.Run(ctx)
|
||||
go mdnsserver.Run(ctx, location, uint16(port), printerName)
|
||||
|
||||
http.HandleFunc("/ipp/print", handle)
|
||||
|
||||
log.Info("http server started on :1234")
|
||||
err := http.ListenAndServe(":1234", nil)
|
||||
log.Infof("http server starting on :%v", port)
|
||||
err = http.ListenAndServe(fmt.Sprintf(":%v", port), nil)
|
||||
if err != nil {
|
||||
log.Fatal("ListenAndServe: " + err.Error())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user