git-lfs/cmd/git-media-clean.go

33 lines
654 B
Go
Raw Normal View History

2013-09-27 15:19:54 +00:00
package main
import (
".."
"../filters"
2013-09-27 15:19:54 +00:00
"fmt"
"os"
)
func main() {
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)
}
defer cleaned.Close()
2013-09-27 15:19:54 +00:00
tmpfile := cleaned.File.Name()
mediafile := gitmedia.LocalMediaPath(cleaned.Sha)
if stat, _ := os.Stat(mediafile); stat != nil {
if stat.Size() != cleaned.Size {
panic(fmt.Sprintf("Files don't match:\n%s\n%s", mediafile, tmpfile))
}
} else {
if err := os.Rename(tmpfile, mediafile); err != nil {
fmt.Printf("Unable to move %s to %s\n", tmpfile, mediafile)
panic(err)
}
}
gitmedia.Encode(os.Stdout, cleaned.Sha)
}