mirror of
https://github.com/go-gitea/gitea.git
synced 2024-09-01 14:56:30 +00:00
fixed pacman database creation algorithm, arch UI template
This commit is contained in:
parent
a15a92419b
commit
d069303825
@ -38,7 +38,7 @@ type Metadata struct {
|
||||
}
|
||||
|
||||
// Package description file that will be saved as .desc file in object storage.
|
||||
// Resulting file will be used to create pacman database.
|
||||
// This file will be used to create pacman database.
|
||||
type DbDesc struct {
|
||||
Filename string `json:"filename"`
|
||||
Name string `json:"name"`
|
||||
|
@ -164,37 +164,64 @@ func CreatePacmanDb(ctx *context.Context, owner, architecture, distro string) ([
|
||||
})
|
||||
|
||||
for _, version := range versions {
|
||||
var md arch.Metadata
|
||||
err = json.Unmarshal([]byte(version.MetadataJSON), &md)
|
||||
desc, err := GetPacmanDbDesc(ctx, &DescParams{
|
||||
Version: version,
|
||||
Arch: architecture,
|
||||
Distro: distro,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var found bool
|
||||
for _, da := range md.DistroArch {
|
||||
if da == distro+"-"+architecture || da == distro+"-any" {
|
||||
desckey := pkg.Name + "-" + version.Version + "-" + architecture + ".desc"
|
||||
descfile, err := GetFileObject(ctx, distro, desckey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
descbytes, err := io.ReadAll(descfile)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
entries[pkg.Name+"-"+version.Version+"/desc"] = descbytes
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if found {
|
||||
break
|
||||
if desc == nil {
|
||||
continue
|
||||
}
|
||||
entries[pkg.Name+"-"+version.Version+"/desc"] = desc
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return arch.CreatePacmanDb(entries)
|
||||
}
|
||||
|
||||
type DescParams struct {
|
||||
Version *pkg_model.PackageVersion
|
||||
Arch string
|
||||
Distro string
|
||||
}
|
||||
|
||||
// Checks if desc file exists for required architecture or any and returns it
|
||||
// in form of byte slice.
|
||||
func GetPacmanDbDesc(ctx *context.Context, p *DescParams) ([]byte, error) {
|
||||
var md arch.Metadata
|
||||
err := json.Unmarshal([]byte(p.Version.MetadataJSON), &md)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, distroarch := range md.DistroArch {
|
||||
var storagekey string
|
||||
|
||||
if distroarch == p.Distro+"-"+p.Arch {
|
||||
storagekey = md.Name + "-" + md.Version + "-" + p.Arch + ".desc"
|
||||
}
|
||||
if distroarch == p.Distro+"-any" {
|
||||
storagekey = md.Name + "-" + md.Version + "-any.desc"
|
||||
}
|
||||
|
||||
if storagekey == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
descfile, err := GetFileObject(ctx, p.Distro, storagekey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return io.ReadAll(descfile)
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// Remove specific package version related to provided user or organization.
|
||||
func RemovePackage(ctx *context.Context, u *user.User, name, version string) error {
|
||||
ver, err := pkg_model.GetVersionByNameAndVersion(ctx, u.ID, pkg_model.TypeArch, name, version)
|
||||
|
@ -23,7 +23,7 @@ Server = <gitea-origin-url data-url="{{AppSubUrl}}/api/packages/{{.PackageDescri
|
||||
|
||||
<h4 class="ui top attached header">{{.locale.Tr "packages.arch.properties"}}</h4>
|
||||
<div class="ui attached segment">
|
||||
<table class="ui single line very basic table">
|
||||
<table class="ui very basic compact table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="collapsing"><h5>Description</h5></td>
|
||||
@ -47,7 +47,7 @@ Server = <gitea-origin-url data-url="{{AppSubUrl}}/api/packages/{{.PackageDescri
|
||||
{{if .PackageDescriptor.Metadata.OptDepends}}
|
||||
<tr>
|
||||
<td class="collapsing"><h5>Optional depends</h5></td>
|
||||
<td>{{StringUtils.Join $.PackageDescriptor.Metadata.OptDepends " "}}</td>
|
||||
<td>{{StringUtils.Join $.PackageDescriptor.Metadata.OptDepends ", "}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
|
||||
@ -57,22 +57,28 @@ Server = <gitea-origin-url data-url="{{AppSubUrl}}/api/packages/{{.PackageDescri
|
||||
<td>{{StringUtils.Join $.PackageDescriptor.Metadata.MakeDepends " "}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
|
||||
|
||||
{{if .PackageDescriptor.Metadata.CheckDepends}}
|
||||
<tr>
|
||||
<td class="collapsing"><h5>Check depends</h5></td>
|
||||
<td>{{StringUtils.Join $.PackageDescriptor.Metadata.CheckDepends " "}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
|
||||
|
||||
{{if .PackageDescriptor.Metadata.Backup}}
|
||||
<tr>
|
||||
<td class="collapsing"><h5>Backup file</h5></td>
|
||||
<td>{{StringUtils.Join $.PackageDescriptor.Metadata.Backup " "}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
|
||||
{{if .PackageDescriptor.Metadata.DistroArch}}
|
||||
<tr>
|
||||
<td class="collapsing"><h5>Available for</h5></td>
|
||||
<td>{{StringUtils.Join $.PackageDescriptor.Metadata.DistroArch ", "}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{end}}
|
||||
|
Loading…
Reference in New Issue
Block a user