mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
gui-less mode for linux
This commit is contained in:
parent
9de14fcb09
commit
439d98003f
26
main.go
26
main.go
@ -2,10 +2,9 @@ package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"github.com/getlantern/systray"
|
||||
"github.com/nkanaev/yarr/server"
|
||||
"github.com/nkanaev/yarr/storage"
|
||||
"github.com/skratchdot/open-golang/open"
|
||||
"github.com/nkanaev/yarr/platform"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@ -34,25 +33,6 @@ func main() {
|
||||
flag.StringVar(&addr, "addr", "127.0.0.1:7070", "address to run server on")
|
||||
flag.Parse()
|
||||
|
||||
systrayOnReady := func() {
|
||||
systray.SetIcon(server.Icon)
|
||||
|
||||
menuOpen := systray.AddMenuItem("Open", "")
|
||||
systray.AddSeparator()
|
||||
menuQuit := systray.AddMenuItem("Quit", "")
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-menuOpen.ClickedCh:
|
||||
open.Run("http://" + addr)
|
||||
case <-menuQuit.ClickedCh:
|
||||
systray.Quit()
|
||||
}
|
||||
}
|
||||
}()
|
||||
srv := server.New(db, logger)
|
||||
srv.Start(addr)
|
||||
}
|
||||
systray.Run(systrayOnReady, nil)
|
||||
srv := server.New(db, logger, addr)
|
||||
platform.Start(srv)
|
||||
}
|
||||
|
33
platform/gui.go
Normal file
33
platform/gui.go
Normal file
@ -0,0 +1,33 @@
|
||||
// +build macos windows
|
||||
|
||||
package platform
|
||||
|
||||
import (
|
||||
"github.com/getlantern/systray"
|
||||
"github.com/nkanaev/yarr/server"
|
||||
"github.com/skratchdot/open-golang/open"
|
||||
)
|
||||
|
||||
func Start(s *server.Handler) {
|
||||
systrayOnReady := func() {
|
||||
systray.SetIcon(server.Icon)
|
||||
|
||||
menuOpen := systray.AddMenuItem("Open", "")
|
||||
systray.AddSeparator()
|
||||
menuQuit := systray.AddMenuItem("Quit", "")
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-menuOpen.ClickedCh:
|
||||
open.Run("http://" + s.Addr)
|
||||
case <-menuQuit.ClickedCh:
|
||||
systray.Quit()
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
s.Start()
|
||||
}
|
||||
systray.Run(systrayOnReady, nil)
|
||||
}
|
11
platform/guiless.go
Normal file
11
platform/guiless.go
Normal file
@ -0,0 +1,11 @@
|
||||
// +build !windows,!macos
|
||||
|
||||
package platform
|
||||
|
||||
import (
|
||||
"github.com/nkanaev/yarr/server"
|
||||
)
|
||||
|
||||
func Start(s *server.Handler) {
|
||||
s.Start()
|
||||
}
|
@ -11,25 +11,27 @@ import (
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
Addr string
|
||||
db *storage.Storage
|
||||
log *log.Logger
|
||||
feedQueue chan storage.Feed
|
||||
queueSize *int32
|
||||
}
|
||||
|
||||
func New(db *storage.Storage, logger *log.Logger) *Handler {
|
||||
func New(db *storage.Storage, logger *log.Logger, addr string) *Handler {
|
||||
queueSize := int32(0)
|
||||
return &Handler{
|
||||
db: db,
|
||||
log: logger,
|
||||
feedQueue: make(chan storage.Feed, 3000),
|
||||
queueSize: &queueSize,
|
||||
Addr: addr,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Handler) Start(addr string) {
|
||||
func (h *Handler) Start() {
|
||||
h.startJobs()
|
||||
s := &http.Server{Addr: addr, Handler: h}
|
||||
s := &http.Server{Addr: h.Addr, Handler: h}
|
||||
s.ListenAndServe()
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user