Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dfea3defb1 | ||
|
|
6ef0d1ded9 | ||
|
|
3318ef3df0 |
16
Dockerfile
Executable file
16
Dockerfile
Executable file
@@ -0,0 +1,16 @@
|
||||
|
||||
FROM golang:1.13-alpine as certs
|
||||
RUN apk update && apk add --no-cache ca-certificates
|
||||
|
||||
FROM busybox:glibc
|
||||
RUN mkdir -p /var/log
|
||||
WORKDIR /main
|
||||
COPY --from=certs /etc/ssl/certs /etc/ssl/certs
|
||||
|
||||
COPY . .
|
||||
|
||||
ENV GOPATH=""
|
||||
ENV MNT="/mnt/"
|
||||
ENTRYPOINT ["/main/exec-rssmon3"]
|
||||
CMD []
|
||||
|
||||
39
main.go
39
main.go
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"local/lastn/lastn"
|
||||
"local/rssmon3/config"
|
||||
"local/rssmon3/handlers"
|
||||
"local/rssmon3/monitor"
|
||||
@@ -8,6 +9,7 @@ import (
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"syscall"
|
||||
"time"
|
||||
)
|
||||
@@ -37,6 +39,8 @@ func main() {
|
||||
h := handlers.New(m.Outgoing)
|
||||
go InterruptAfter(h.Run, sigc)
|
||||
|
||||
go EnqueueBackups()
|
||||
|
||||
signal.Notify(sigc,
|
||||
syscall.SIGHUP,
|
||||
syscall.SIGINT,
|
||||
@@ -54,3 +58,38 @@ func InterruptAfter(foo func() error, c chan os.Signal) {
|
||||
}
|
||||
c <- syscall.SIGINT
|
||||
}
|
||||
|
||||
func EnqueueBackups() {
|
||||
realpath, err := filepath.Abs(config.Values().Addr)
|
||||
if err != nil {
|
||||
log.Println("dir", config.Values().Addr, "not found, so no backups")
|
||||
return
|
||||
}
|
||||
conf := lastn.Config{
|
||||
N: 3,
|
||||
Rclone: realpath + "-backups",
|
||||
Root: realpath,
|
||||
Ns: "backups",
|
||||
Store: "rclone",
|
||||
Conf: "/dev/null",
|
||||
}
|
||||
log.Printf("backups conf: %+v", conf)
|
||||
lastn, err := lastn.New(conf)
|
||||
if err != nil {
|
||||
log.Println("backups disabled:", realpath, ":", err)
|
||||
return
|
||||
}
|
||||
ticker := time.NewTicker(time.Hour * 24)
|
||||
if err := lastn.Push(); err != nil {
|
||||
log.Println("backup failed:", err)
|
||||
}
|
||||
for _ = range ticker.C {
|
||||
log.Println("backing up...")
|
||||
if err := lastn.Push(); err != nil {
|
||||
log.Println("backup push failed:", err)
|
||||
}
|
||||
if err := lastn.Clean(); err != nil {
|
||||
log.Println("backup clean failed:", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
0
vendor/github.com/PuerkitoBio/goquery/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/array.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/array.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/doc.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/doc.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/expand.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/expand.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/filter.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/filter.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/go.mod
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/go.mod
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/go.sum
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/go.sum
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/iteration.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/iteration.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/manipulation.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/manipulation.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/property.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/property.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/query.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/query.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/traversal.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/traversal.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/type.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/type.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/utilities.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/PuerkitoBio/goquery/utilities.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/go.mod
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/go.mod
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/selector.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/selector.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/serialize.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/serialize.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/specificity.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/andybalholm/cascadia/specificity.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/error.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/error.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/priority_queue.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/priority_queue.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/queue.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/queue.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/ring.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/golang-collections/go-datastructures/queue/ring.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/AUTHORS
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/AUTHORS
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/atom.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/atom.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/doc.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/doc.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/json.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/json.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/rss.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/rss.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/test.atom
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/test.atom
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/test.rss
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/test.rss
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/to-implement.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/to-implement.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/uuid.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/gorilla/feeds/uuid.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/atom/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/atom/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/atom/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/atom/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/detector.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/detector.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/extensions/dublincore.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/extensions/dublincore.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/extensions/extensions.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/extensions/extensions.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/extensions/itunes.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/extensions/itunes.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/go.mod
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/go.mod
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/go.sum
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/go.sum
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/charsetconv.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/charsetconv.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/dateparser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/dateparser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/extparser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/extparser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/parseutils.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/parseutils.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/xmlbase.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/xmlbase.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/xmlsanitizer.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/internal/shared/xmlsanitizer.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/rss/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/rss/feed.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/rss/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/rss/parser.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/translator.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/gofeed/translator.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/goxpp/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/goxpp/LICENSE
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/goxpp/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/goxpp/README.md
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/goxpp/xpp.go
generated
vendored
Normal file → Executable file
0
vendor/github.com/mmcdole/goxpp/xpp.go
generated
vendored
Normal file → Executable file
Reference in New Issue
Block a user