X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=json.go;h=7f1f3d77624764e3cb307f4f88d2dd215f6b8c1b;hb=HEAD;hp=7ccb14287ab77cbddd63ba5631544918a7076e03;hpb=60834a0713d5dcc6a9911511cb8618ce7358c824;p=gocheese.git diff --git a/json.go b/json.go index 7ccb142..7f1f3d7 100644 --- a/json.go +++ b/json.go @@ -1,26 +1,23 @@ -/* -GoCheese -- Python private package repository and caching proxy -Copyright (C) 2019-2021 Sergey Matveev - -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 . -*/ +// GoCheese -- Python private package repository and caching proxy +// Copyright (C) 2019-2024 Sergey Matveev +// +// 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 . 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)