]> Cypherpunks.ru repositories - gocheese.git/blobdiff - json.go
More convenient trusted-host
[gocheese.git] / json.go
diff --git a/json.go b/json.go
index a9a21a8024e97470c47a9aa0f0e47d15f4c29c8f..7f1f3d77624764e3cb307f4f88d2dd215f6b8c1b 100644 (file)
--- a/json.go
+++ b/json.go
@@ -1,26 +1,23 @@
-/*
-GoCheese -- Python private package repository and caching proxy
-Copyright (C) 2019-2021 Sergey Matveev <stargrave@stargrave.org>
-
-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
-the Free Software Foundation, version 3 of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
+// GoCheese -- Python private package repository and caching proxy
+// Copyright (C) 2019-2024 Sergey Matveev <stargrave@stargrave.org>
+//
+// 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
+// the Free Software Foundation, version 3 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 package main
 
 import (
        "bytes"
        "encoding/json"
-       "io/ioutil"
        "log"
        "net/http"
        "os"
@@ -30,68 +27,68 @@ import (
        "go.cypherpunks.ru/recfile"
 )
 
-func getMetadata(pkgName, version string) (*PkgMeta, []*PkgReleaseInfo, error) {
+func getMD(pkgName, version string) (*PkgMeta, []*PkgReleaseInfo, error) {
        serial, releases, err := listDir(pkgName, true)
        if err != nil {
                return nil, nil, err
        }
-       metadata, err := ioutil.ReadFile(filepath.Join(Root, pkgName, MetadataFile))
+       md, err := os.ReadFile(filepath.Join(Root, pkgName, MDFile))
        if err != nil {
                if !os.IsNotExist(err) {
                        return nil, nil, err
                }
        }
        info := PkgInfo{Name: pkgName}
-       if len(metadata) == 0 {
+       if len(md) == 0 {
                info.Version = releases[len(releases)-1].Version
        } else {
-               m, err := recfile.NewReader(bytes.NewReader(metadata)).NextMapWithSlice()
+               m, err := recfile.NewReader(bytes.NewReader(md)).NextMapWithSlice()
                if err != nil {
                        return nil, nil, err
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldVersion)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldVersion]]; ok {
                        info.Version = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldSummary)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldSummary]]; ok {
                        info.Summary = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldDescriptionContentType)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldDescriptionContentType]]; ok {
                        info.DescriptionContentType = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldKeywords)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldKeywords]]; ok {
                        info.Keywords = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldHomePage)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldHomePage]]; ok {
                        info.HomePage = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldAuthor)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldAuthor]]; ok {
                        info.Author = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldAuthorEmail)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldAuthorEmail]]; ok {
                        info.AuthorEmail = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldMaintainer)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldMaintainer]]; ok {
                        info.Maintainer = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldMaintainerEmail)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldMaintainerEmail]]; ok {
                        info.MaintainerEmail = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldLicense)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldLicense]]; ok {
                        info.License = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldRequiresPython)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldRequiresPython]]; ok {
                        info.RequiresPython = v[0]
                }
-               if v, ok := m[metadataFieldToRecField(MetadataFieldDescription)]; ok {
+               if v, ok := m[MDFieldToRecField[MDFieldDescription]]; ok {
                        info.Description = v[0]
                }
-               info.Classifier = m[metadataFieldToRecField(MetadataFieldClassifier)]
-               info.Platform = m[metadataFieldToRecField(MetadataFieldPlatform)]
-               info.SupportedPlatform = m[metadataFieldToRecField(MetadataFieldSupportedPlatform)]
-               info.RequiresDist = m[metadataFieldToRecField(MetadataFieldRequiresDist)]
-               info.RequiresExternal = m[metadataFieldToRecField(MetadataFieldRequiresExternal)]
-               info.ProjectURL = m[metadataFieldToRecField(MetadataFieldProjectURL)]
-               info.ProvidesExtra = m[metadataFieldToRecField(MetadataFieldProvidesExtra)]
+               info.Classifier = m[MDFieldToRecField[MDFieldClassifier]]
+               info.Platform = m[MDFieldToRecField[MDFieldPlatform]]
+               info.SupportedPlatform = m[MDFieldToRecField[MDFieldSupportedPlatform]]
+               info.RequiresDist = m[MDFieldToRecField[MDFieldRequiresDist]]
+               info.RequiresExternal = m[MDFieldToRecField[MDFieldRequiresExternal]]
+               info.ProjectURL = m[MDFieldToRecField[MDFieldProjectURL]]
+               info.ProvidesExtra = m[MDFieldToRecField[MDFieldProvidesExtra]]
        }
        meta := PkgMeta{
                Info:       info,
@@ -126,7 +123,7 @@ func serveJSON(w http.ResponseWriter, r *http.Request) {
        }
        pkgName := parts[0]
 
-       meta, _, err := getMetadata(pkgName, version)
+       meta, _, err := getMD(pkgName, version)
        if err != nil {
                if os.IsNotExist(err) {
                        http.NotFound(w, r)