powerful but friendly backup program that runs in your tray, powered by restic devins.page/restray
go restic system-tray
2

Configure Feed

Select the types of activity you want to include in your feed.

feat: verbose

intergrav (Jun 29, 2026, 12:54 PM EDT) 7cbdbb6f bc6ee7ee

+12 -2
+1 -1
cmd/restray/cli.go
··· 16 16 fmt.Fprintf(os.Stderr, `Usage: restray [command] 17 17 18 18 Commands: 19 - (no command) Launch GUI 19 + (no command) Launch GUI with built-in scheduler 20 20 schedule [-p name] Run full schedule with hooks 21 21 op|operation backup [-p name] Run backup 22 22 op prune [-p name] Prune old snapshots
+11 -1
cmd/restray/main.go
··· 1 1 package main 2 2 3 3 import ( 4 + "io" 4 5 "log" 5 6 "os" 6 7 ··· 11 12 const version = "0.10.0" 12 13 13 14 func main() { 15 + verbose := len(os.Args) > 1 && (os.Args[1] == "-v" || os.Args[1] == "--verbose") 16 + if verbose { 17 + os.Args = append(os.Args[:1], os.Args[2:]...) 18 + } 19 + 14 20 if len(os.Args) > 1 { 15 21 os.Exit(runCLI(os.Args[1:])) 16 22 } ··· 25 31 26 32 f, err := os.OpenFile(logPath(), os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0600) 27 33 if err == nil { 28 - log.SetOutput(f) 34 + if verbose { 35 + log.SetOutput(io.MultiWriter(f, os.Stderr)) 36 + } else { 37 + log.SetOutput(f) 38 + } 29 39 log.SetFlags(log.Ldate | log.Ltime) 30 40 } 31 41