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 (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"github.com/getlantern/systray"
|
|
||||||
"github.com/nkanaev/yarr/server"
|
"github.com/nkanaev/yarr/server"
|
||||||
"github.com/nkanaev/yarr/storage"
|
"github.com/nkanaev/yarr/storage"
|
||||||
"github.com/skratchdot/open-golang/open"
|
"github.com/nkanaev/yarr/platform"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -34,25 +33,6 @@ func main() {
|
|||||||
flag.StringVar(&addr, "addr", "127.0.0.1:7070", "address to run server on")
|
flag.StringVar(&addr, "addr", "127.0.0.1:7070", "address to run server on")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
systrayOnReady := func() {
|
srv := server.New(db, logger, addr)
|
||||||
systray.SetIcon(server.Icon)
|
platform.Start(srv)
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
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 {
|
type Handler struct {
|
||||||
|
Addr string
|
||||||
db *storage.Storage
|
db *storage.Storage
|
||||||
log *log.Logger
|
log *log.Logger
|
||||||
feedQueue chan storage.Feed
|
feedQueue chan storage.Feed
|
||||||
queueSize *int32
|
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)
|
queueSize := int32(0)
|
||||||
return &Handler{
|
return &Handler{
|
||||||
db: db,
|
db: db,
|
||||||
log: logger,
|
log: logger,
|
||||||
feedQueue: make(chan storage.Feed, 3000),
|
feedQueue: make(chan storage.Feed, 3000),
|
||||||
queueSize: &queueSize,
|
queueSize: &queueSize,
|
||||||
|
Addr: addr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handler) Start(addr string) {
|
func (h *Handler) Start() {
|
||||||
h.startJobs()
|
h.startJobs()
|
||||||
s := &http.Server{Addr: addr, Handler: h}
|
s := &http.Server{Addr: h.Addr, Handler: h}
|
||||||
s.ListenAndServe()
|
s.ListenAndServe()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user