2013-09-27 15:19:54 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
".."
|
2013-10-04 14:56:56 +00:00
|
|
|
"../filters"
|
2013-09-27 15:19:54 +00:00
|
|
|
"fmt"
|
|
|
|
"os"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
2013-10-04 19:24:02 +00:00
|
|
|
gitmedia.SetupDebugging()
|
|
|
|
|
2013-10-04 14:56:56 +00:00
|
|
|
cleaned, err := gitmediafilters.Clean(os.Stdin)
|
2013-09-27 15:19:54 +00:00
|
|
|
if err != nil {
|
2013-09-27 20:28:45 +00:00
|
|
|
fmt.Println("Error cleaning asset")
|
2013-09-27 15:19:54 +00:00
|
|
|
panic(err)
|
|
|
|
}
|
2013-10-04 17:19:11 +00:00
|
|
|
defer cleaned.Close()
|
2013-09-27 15:19:54 +00:00
|
|
|
|
2013-10-04 17:19:11 +00:00
|
|
|
tmpfile := cleaned.File.Name()
|
|
|
|
mediafile := gitmedia.LocalMediaPath(cleaned.Sha)
|
|
|
|
if stat, _ := os.Stat(mediafile); stat != nil {
|
|
|
|
if stat.Size() != cleaned.Size {
|
2013-10-04 19:24:02 +00:00
|
|
|
gitmedia.Panic(nil, "Files don't match:\n%s\n%s", mediafile, tmpfile)
|
2013-10-04 17:19:11 +00:00
|
|
|
}
|
2013-10-04 20:08:42 +00:00
|
|
|
gitmedia.Debug("%s exists", mediafile)
|
2013-10-04 17:19:11 +00:00
|
|
|
} else {
|
|
|
|
if err := os.Rename(tmpfile, mediafile); err != nil {
|
2013-10-04 19:24:02 +00:00
|
|
|
gitmedia.Panic(err, "Unable to move %s to %s\n", tmpfile, mediafile)
|
2013-10-04 17:19:11 +00:00
|
|
|
}
|
2013-10-21 18:22:02 +00:00
|
|
|
|
|
|
|
gitmedia.QueueUpload(cleaned.Sha)
|
2013-10-04 19:24:02 +00:00
|
|
|
gitmedia.Debug("Writing %s", mediafile)
|
2013-10-04 17:19:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
gitmedia.Encode(os.Stdout, cleaned.Sha)
|
2013-09-27 16:58:49 +00:00
|
|
|
}
|