+6
-6
src/collect.go
+6
-6
src/collect.go
···
22
22
23
23
appendFile := func(header *tar.Header, data []byte, transform Transform) (err error) {
24
24
switch transform {
25
-
case Transform_None:
26
-
case Transform_Zstandard:
25
+
case Transform_Identity:
26
+
case Transform_Zstd:
27
27
data, err = zstdDecoder.DecodeAll(data, []byte{})
28
28
if err != nil {
29
29
return err
···
53
53
header.Typeflag = tar.TypeDir
54
54
header.Mode = 0755
55
55
header.ModTime = manifestMtime
56
-
err = appendFile(&header, nil, Transform_None)
56
+
err = appendFile(&header, nil, Transform_Identity)
57
57
58
58
case Type_InlineFile:
59
59
header.Typeflag = tar.TypeReg
···
79
79
header.Typeflag = tar.TypeSymlink
80
80
header.Mode = 0644
81
81
header.ModTime = manifestMtime
82
-
err = appendFile(&header, entry.GetData(), Transform_None)
82
+
err = appendFile(&header, entry.GetData(), Transform_Identity)
83
83
84
84
default:
85
85
return fmt.Errorf("unexpected entry type")
···
95
95
Typeflag: tar.TypeReg,
96
96
Mode: 0644,
97
97
ModTime: manifestMtime,
98
-
}, []byte(redirects), Transform_None)
98
+
}, []byte(redirects), Transform_Identity)
99
99
if err != nil {
100
100
return err
101
101
}
···
107
107
Typeflag: tar.TypeReg,
108
108
Mode: 0644,
109
109
ModTime: manifestMtime,
110
-
}, []byte(headers), Transform_None)
110
+
}, []byte(headers), Transform_Identity)
111
111
if err != nil {
112
112
return err
113
113
}
+3
-3
src/manifest.go
+3
-3
src/manifest.go
···
144
144
for path, entry := range manifest.Contents {
145
145
if entry.GetType() == Type_Directory || entry.GetType() == Type_Symlink {
146
146
// no Content-Type
147
-
} else if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_None {
147
+
} else if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_Identity {
148
148
contentType := mime.TypeByExtension(filepath.Ext(path))
149
149
if contentType == "" {
150
150
contentType = http.DetectContentType(entry.Data[:min(512, len(entry.Data))])
···
168
168
169
169
var originalSize, compressedSize int64
170
170
for _, entry := range manifest.Contents {
171
-
if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_None {
171
+
if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_Identity {
172
172
mtype := getMediaType(entry.GetContentType())
173
173
if strings.HasPrefix(mtype, "video/") || strings.HasPrefix(mtype, "audio/") {
174
174
continue
···
178
178
if len(compressedData) < int(*entry.Size) {
179
179
entry.Data = compressedData
180
180
entry.Size = proto.Int64(int64(len(entry.Data)))
181
-
entry.Transform = Transform_Zstandard.Enum()
181
+
entry.Transform = Transform_Zstd.Enum()
182
182
}
183
183
compressedSize += entry.GetSize()
184
184
}
+5
-3
src/pages.go
+5
-3
src/pages.go
···
300
300
acceptedEncodings := parseHTTPEncodings(r.Header.Get("Accept-Encoding"))
301
301
negotiatedEncoding := true
302
302
switch entry.GetTransform() {
303
-
case Transform_None:
304
-
if acceptedEncodings.Negotiate("identity") != "identity" {
303
+
case Transform_Identity:
304
+
switch acceptedEncodings.Negotiate("identity") {
305
+
case "identity":
306
+
default:
305
307
negotiatedEncoding = false
306
308
}
307
-
case Transform_Zstandard:
309
+
case Transform_Zstd:
308
310
supported := []string{"zstd", "identity"}
309
311
if entry.ContentType == nil {
310
312
// If Content-Type is unset, `http.ServeContent` will try to sniff
+12
-11
src/schema.pb.go
+12
-11
src/schema.pb.go
···
81
81
return file_schema_proto_rawDescGZIP(), []int{0}
82
82
}
83
83
84
+
// Transformation names should match HTTP `Accept-Encoding:` header.
84
85
type Transform int32
85
86
86
87
const (
87
88
// No transformation.
88
-
Transform_None Transform = 0
89
+
Transform_Identity Transform = 0
89
90
// Zstandard compression.
90
-
Transform_Zstandard Transform = 1
91
+
Transform_Zstd Transform = 1
91
92
)
92
93
93
94
// Enum value maps for Transform.
94
95
var (
95
96
Transform_name = map[int32]string{
96
-
0: "None",
97
-
1: "Zstandard",
97
+
0: "Identity",
98
+
1: "Zstd",
98
99
}
99
100
Transform_value = map[string]int32{
100
-
"None": 0,
101
-
"Zstandard": 1,
101
+
"Identity": 0,
102
+
"Zstd": 1,
102
103
}
103
104
)
104
105
···
207
208
if x != nil && x.Transform != nil {
208
209
return *x.Transform
209
210
}
210
-
return Transform_None
211
+
return Transform_Identity
211
212
}
212
213
213
214
func (x *Entry) GetContentType() string {
···
614
615
"\n" +
615
616
"InlineFile\x10\x02\x12\x10\n" +
616
617
"\fExternalFile\x10\x03\x12\v\n" +
617
-
"\aSymlink\x10\x04*$\n" +
618
-
"\tTransform\x12\b\n" +
619
-
"\x04None\x10\x00\x12\r\n" +
620
-
"\tZstandard\x10\x01B,Z*codeberg.org/git-pages/git-pages/git_pagesb\beditionsp\xe8\a"
618
+
"\aSymlink\x10\x04*#\n" +
619
+
"\tTransform\x12\f\n" +
620
+
"\bIdentity\x10\x00\x12\b\n" +
621
+
"\x04Zstd\x10\x01B,Z*codeberg.org/git-pages/git-pages/git_pagesb\beditionsp\xe8\a"
621
622
622
623
var (
623
624
file_schema_proto_rawDescOnce sync.Once
+3
-2
src/schema.proto
+3
-2
src/schema.proto