diff --git a/cmd/git-media-clean.go b/cmd/git-media-clean.go index 4da3bcde..d9529f5a 100644 --- a/cmd/git-media-clean.go +++ b/cmd/git-media-clean.go @@ -3,20 +3,12 @@ package main import ( ".." "../filters" - "../queuedir" "fmt" "os" - "path/filepath" ) func main() { gitmedia.SetupDebugging() - qdir := queuedir.New(filepath.Join(gitmedia.LocalMediaDir, "queue")) - cleanqueue, err := qdir.Queue("clean") - if err != nil { - fmt.Println("Error setting up queue") - panic(err) - } cleaned, err := gitmediafilters.Clean(os.Stdin) if err != nil { @@ -36,9 +28,8 @@ func main() { if err := os.Rename(tmpfile, mediafile); err != nil { gitmedia.Panic(err, "Unable to move %s to %s\n", tmpfile, mediafile) } - if _, err := cleanqueue.AddString(cleaned.Sha); err != nil { - gitmedia.Panic(err, "Unable to add %s to queue", cleaned.Sha) - } + + gitmedia.QueueUpload(cleaned.Sha) gitmedia.Debug("Writing %s", mediafile) } diff --git a/gitmedia.go b/gitmedia.go index c861d099..027ff70c 100644 --- a/gitmedia.go +++ b/gitmedia.go @@ -65,6 +65,7 @@ func Debug(format string, args ...interface{}) { func init() { LocalMediaDir = resolveMediaDir() + queueDir = setupQueueDir() if err := os.MkdirAll(TempDir, 0744); err != nil { fmt.Printf("Error trying to create temp directory: %s\n", TempDir) diff --git a/queues.go b/queues.go new file mode 100644 index 00000000..f6914763 --- /dev/null +++ b/queues.go @@ -0,0 +1,34 @@ +package gitmedia + +import ( + "./queuedir" + "path/filepath" +) + +func QueueUpload(sha string) { + _, err := getUploadQueue().AddString(sha) + if err != nil { + Panic(err, "Unable to add %s to queue", sha) + } +} + +func getUploadQueue() *queuedir.Queue { + if uploadQueue == nil { + q, err := queueDir.Queue("upload") + if err != nil { + Panic(err, "Error setting up queue") + } + uploadQueue = q + } + + return uploadQueue +} + +func setupQueueDir() *queuedir.QueueDir { + return queuedir.New(filepath.Join(LocalMediaDir, "queue")) +} + +var ( + queueDir *queuedir.QueueDir + uploadQueue *queuedir.Queue +)