Add cylogger dependency, and refactor logging to use cylogger

This commit is contained in:
system
2025-05-20 11:44:55 +02:00
parent 21d103065e
commit 0d17f5c2a3
3 changed files with 27 additions and 36 deletions

7
go.mod
View File

@@ -1,10 +1,13 @@
module gitvc module gitvc
go 1.23.0 go 1.24.2
toolchain go1.24.3 toolchain go1.24.3
require github.com/go-git/go-git/v5 v5.16.0 require (
git.site.quack-lab.dev/dave/cylogger v1.2.2
github.com/go-git/go-git/v5 v5.16.0
)
require ( require (
dario.cat/mergo v1.0.0 // indirect dario.cat/mergo v1.0.0 // indirect

2
go.sum
View File

@@ -1,5 +1,7 @@
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
git.site.quack-lab.dev/dave/cylogger v1.2.2 h1:4xUXASEBlG9NiGxh7f57xHh9imW4unHzakIEpQoKC5E=
git.site.quack-lab.dev/dave/cylogger v1.2.2/go.mod h1:VS9MI4Y/cwjCBZgel7dSfCQlwtAgHmfvixOoBgBhtKg=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=

54
main.go
View File

@@ -2,31 +2,17 @@ package main
import ( import (
"flag" "flag"
"fmt"
"io"
"log" "log"
"os" "os"
"path" "path"
"path/filepath" "path/filepath"
"time" "time"
logger "git.site.quack-lab.dev/dave/cylogger"
"github.com/go-git/go-git/v5/plumbing/object"
"github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5"
"github.com/go-git/go-git/v5/config"
) )
var Error *log.Logger
var Warning *log.Logger
func init() {
log.SetFlags(log.Ldate | log.Ltime)
Error = log.New(io.MultiWriter(os.Stderr, os.Stdout),
fmt.Sprintf("%sERROR:%s ", "\033[0;101m", "\033[0m"),
log.Ldate|log.Ltime)
Warning = log.New(io.MultiWriter(os.Stdout),
fmt.Sprintf("%sWarning:%s ", "\033[0;93m", "\033[0m"),
log.Ldate|log.Ltime)
}
var ROOT string var ROOT string
func main() { func main() {
@@ -36,29 +22,29 @@ func main() {
scanInterval, err := time.ParseDuration(*scanIntervalF) scanInterval, err := time.ParseDuration(*scanIntervalF)
if err != nil { if err != nil {
Error.Printf("error parsing SCAN_INTERVAL: %v", err) logger.Error("error parsing SCAN_INTERVAL: %v", err)
return return
} }
cwd, err := os.Getwd() cwd, err := os.Getwd()
if err != nil { if err != nil {
Error.Printf("error getting cwd: %v", err) logger.Error("error getting cwd: %v", err)
return return
} }
ROOT = path.Clean(cwd) ROOT = path.Clean(cwd)
ROOT, err = filepath.Abs(ROOT) ROOT, err = filepath.Abs(ROOT)
if err != nil { if err != nil {
Error.Printf("error getting absolute path for ROOT: %v", err) logger.Error("error getting absolute path for ROOT: %v", err)
return return
} }
log.Printf("Input args parsed as:") logger.Info("Input args parsed as:")
log.Printf("ROOT: %s", ROOT) logger.Info("ROOT: %s", ROOT)
log.Printf("SCAN_INTERVAL: %.0fs", scanInterval.Seconds()) logger.Info("SCAN_INTERVAL: %.0fs", scanInterval.Seconds())
for { for {
log.Printf("Running at %s", time.Now().Format(time.RFC3339)) logger.Info("Running at %s", time.Now().Format(time.RFC3339))
doRun() doRun()
time.Sleep(scanInterval) time.Sleep(scanInterval)
} }
@@ -68,57 +54,57 @@ func doRun() {
// Open the repository // Open the repository
r, err := git.PlainOpen(ROOT) r, err := git.PlainOpen(ROOT)
if err != nil { if err != nil {
Error.Printf("Error opening repository: %v", err) logger.Error("Error opening repository: %v", err)
return return
} }
// Get the worktree // Get the worktree
w, err := r.Worktree() w, err := r.Worktree()
if err != nil { if err != nil {
Error.Printf("Error getting worktree: %v", err) logger.Error("Error getting worktree: %v", err)
return return
} }
// Check status // Check status
status, err := w.Status() status, err := w.Status()
if err != nil { if err != nil {
Error.Printf("Error getting status: %v", err) logger.Error("Error getting status: %v", err)
return return
} }
if status.IsClean() { if status.IsClean() {
log.Printf("Nothing to commit") logger.Info("Nothing to commit")
return return
} }
log.Printf("Changes detected") logger.Info("Changes detected")
// Add all changes // Add all changes
err = w.AddWithOptions(&git.AddOptions{All: true}) err = w.AddWithOptions(&git.AddOptions{All: true})
if err != nil { if err != nil {
Error.Printf("Error adding changes: %v", err) logger.Error("Error adding changes: %v", err)
return return
} }
log.Printf("Changes added to index") logger.Info("Changes added to index")
// Set identity // Set identity
err = setIdentity(r) err = setIdentity(r)
if err != nil { if err != nil {
Error.Printf("Error setting identity: %v", err) logger.Error("Error setting identity: %v", err)
return return
} }
// Commit changes // Commit changes
_, err = w.Commit("Update", &git.CommitOptions{ _, err = w.Commit("Update", &git.CommitOptions{
Author: &config.Signature{ Author: &object.Signature{
Name: "system", Name: "system",
Email: "system@localhost", Email: "system@localhost",
}, },
}) })
if err != nil { if err != nil {
Error.Printf("Error committing changes: %v", err) logger.Error("Error committing changes: %v", err)
return return
} }
log.Printf("Changes committed") logger.Info("Changes committed")
} }
func setIdentity(r *git.Repository) error { func setIdentity(r *git.Repository) error {