/*
GoCheese -- Python private package repository and caching proxy
-Copyright (C) 2019-2021 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2019-2022 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
import (
"bytes"
"encoding/json"
- "io/ioutil"
"log"
"net/http"
"os"
"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,
}
pkgName := parts[0]
- meta, _, err := getMetadata(pkgName, version)
+ meta, _, err := getMD(pkgName, version)
if err != nil {
if os.IsNotExist(err) {
http.NotFound(w, r)