Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'workhorse/internal/upload/exif/exif.go')
-rw-r--r--workhorse/internal/upload/exif/exif.go22
1 files changed, 19 insertions, 3 deletions
diff --git a/workhorse/internal/upload/exif/exif.go b/workhorse/internal/upload/exif/exif.go
index a9307b1ca90..2f8218c3bc3 100644
--- a/workhorse/internal/upload/exif/exif.go
+++ b/workhorse/internal/upload/exif/exif.go
@@ -22,6 +22,14 @@ type cleaner struct {
eof bool
}
+type FileType int
+
+const (
+ TypeUnknown FileType = iota
+ TypeJPEG
+ TypeTIFF
+)
+
func NewCleaner(ctx context.Context, stdin io.Reader) (io.ReadCloser, error) {
c := &cleaner{ctx: ctx}
@@ -100,8 +108,16 @@ func (c *cleaner) startProcessing(stdin io.Reader) error {
return nil
}
-func IsExifFile(filename string) bool {
- filenameMatch := regexp.MustCompile(`(?i)\.(jpg|jpeg|tiff)$`)
+func FileTypeFromSuffix(filename string) FileType {
+ jpegMatch := regexp.MustCompile(`(?i)^[^\n]*\.(jpg|jpeg)$`)
+ if jpegMatch.MatchString(filename) {
+ return TypeJPEG
+ }
+
+ tiffMatch := regexp.MustCompile(`(?i)^[^\n]*\.tiff$`)
+ if tiffMatch.MatchString(filename) {
+ return TypeTIFF
+ }
- return filenameMatch.MatchString(filename)
+ return TypeUnknown
}