/*
GoCheese -- Python private package repository and caching proxy
-Copyright (C) 2019-2021 Sergey Matveev <stargrave@stargrave.org>
- 2019-2021 Elena Balakhonova <balakhonova_e@riseup.net>
+Copyright (C) 2019-2022 Sergey Matveev <stargrave@stargrave.org>
+ 2019-2022 Elena Balakhonova <balakhonova_e@riseup.net>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
var buf bytes.Buffer
wr := recfile.NewWriter(&buf)
- for _, m := range [][2]string{
- {"name", MetadataFieldName},
- {"version", MetadataFieldVersion},
- {"platform", MetadataFieldPlatform},
- {"supported_platform", MetadataFieldSupportedPlatform},
- {"summary", MetadataFieldSummary},
- {"description", MetadataFieldDescription},
- {"description_content_type", MetadataFieldDescriptionContentType},
- {"keywords", MetadataFieldKeywords},
- {"home_page", MetadataFieldHomePage},
- {"author", MetadataFieldAuthor},
- {"author_email", MetadataFieldAuthorEmail},
- {"maintainer", MetadataFieldMaintainer},
- {"maintainer_email", MetadataFieldMaintainerEmail},
- {"license", MetadataFieldLicense},
- {"classifiers", MetadataFieldClassifier},
- {"requires_dist", MetadataFieldRequiresDist},
- {"requires_python", MetadataFieldRequiresPython},
- {"requires_external", MetadataFieldRequiresExternal},
- {"project_url", MetadataFieldProjectURL},
- {"provides_extra", MetadataFieldProvidesExtra},
- } {
+ for _, m := range MDFormToRecField {
formField, recField := m[0], m[1]
if vs, exists := r.MultipartForm.Value[formField]; exists {
for _, v := range vs {
lines := strings.Split(v, "\n")
if len(lines) > 1 {
- _, err = wr.WriteFieldMultiline(
- metadataFieldToRecField(recField),
- lines,
- )
+ _, err = wr.WriteFieldMultiline(recField, lines)
} else {
_, err = wr.WriteFields(recfile.Field{
- Name: metadataFieldToRecField(recField),
+ Name: recField,
Value: lines[0],
})
}
}
}
}
- path := filepath.Join(dirPath, MetadataFile)
+ path := filepath.Join(dirPath, MDFile)
if err = WriteFileSync(dirPath, path, buf.Bytes(), now); err != nil {
log.Println("error", r.RemoteAddr, path, err)
http.Error(w, err.Error(), http.StatusInternalServerError)