v0.5.0: manifests, filters, logging, docs
pipeline / build (push) Has been cancelled
pipeline / test (push) Has been cancelled

This commit is contained in:
Ein Anderssono
2026-06-15 00:00:06 +02:00
parent 3d3c4a4742
commit 2e73d01b40
33 changed files with 7238 additions and 512 deletions
+33
View File
@@ -0,0 +1,33 @@
package main
import (
"io"
"os"
"sync/atomic"
"gitea.k3s.k0.nu/tools/photocli/internal/photos"
)
func runMain(args []string, stdout, stderr *os.File, bridge photos.Bridge) int {
return runMainWithSignal(args, stdout, stderr, bridge, defaultSignalChan())
}
func runMainWithSignal(args []string, stdout *os.File, stderr io.Writer, bridge photos.Bridge, sigCh <-chan struct{}) int {
done := make(chan struct{})
var rc atomic.Int32
go func() {
rc.Store(int32(run(args, stdout, stderr, bridge)))
close(done)
}()
select {
case <-done:
case <-sigCh:
bridge.Cancel()
stderr.Write([]byte("\nreceived signal, finishing current file...\n"))
<-done
}
return int(rc.Load())
}