forked from Plemya-x/ALR
refactor: migrate to xorm
This commit is contained in:
@ -40,17 +40,10 @@ func (rs *Repos) FindPkgs(ctx context.Context, pkgs []string) (map[string][]db.P
|
||||
}
|
||||
|
||||
added := 0
|
||||
for result.Next() {
|
||||
var pkg db.Package
|
||||
err = result.StructScan(&pkg)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
for _, pkg := range result {
|
||||
added++
|
||||
found[pkgName] = append(found[pkgName], pkg)
|
||||
}
|
||||
result.Close()
|
||||
|
||||
if added == 0 {
|
||||
result, err := rs.db.GetPkgs(ctx, "name LIKE ?", pkgName)
|
||||
@ -58,18 +51,10 @@ func (rs *Repos) FindPkgs(ctx context.Context, pkgs []string) (map[string][]db.P
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
for result.Next() {
|
||||
var pkg db.Package
|
||||
err = result.StructScan(&pkg)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
for _, pkg := range result {
|
||||
added++
|
||||
found[pkgName] = append(found[pkgName], pkg)
|
||||
}
|
||||
|
||||
result.Close()
|
||||
}
|
||||
|
||||
if added == 0 {
|
||||
|
@ -94,11 +94,11 @@ func TestFindPkgsEmpty(t *testing.T) {
|
||||
Repository: "default",
|
||||
Version: "0.0.1",
|
||||
Release: 1,
|
||||
Description: db.NewJSON(map[string]string{
|
||||
Description: map[string]string{
|
||||
"en": "Test package 1",
|
||||
"ru": "Проверочный пакет 1",
|
||||
}),
|
||||
Provides: db.NewJSON([]string{""}),
|
||||
},
|
||||
Provides: []string{""},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("Expected no error, got %s", err)
|
||||
@ -109,11 +109,11 @@ func TestFindPkgsEmpty(t *testing.T) {
|
||||
Repository: "default",
|
||||
Version: "0.0.1",
|
||||
Release: 1,
|
||||
Description: db.NewJSON(map[string]string{
|
||||
Description: map[string]string{
|
||||
"en": "Test package 2",
|
||||
"ru": "Проверочный пакет 2",
|
||||
}),
|
||||
Provides: db.NewJSON([]string{"test"}),
|
||||
},
|
||||
Provides: []string{"test"},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("Expected no error, got %s", err)
|
||||
|
@ -130,7 +130,7 @@ func (rs *Repos) Pull(ctx context.Context, repos []types.Repo) error {
|
||||
// If the DB was not present at startup, that means it's
|
||||
// empty. In this case, we need to update the DB fully
|
||||
// rather than just incrementally.
|
||||
if rs.db.IsEmpty(ctx) {
|
||||
if rs.db.IsEmpty() {
|
||||
err = rs.processRepoFull(ctx, repo, repoDir)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -84,16 +84,10 @@ build_deps=('golang')
|
||||
result, err := database.GetPkgs(ctx, "1 = 1")
|
||||
assert.NoError(t, err)
|
||||
pkgCount := 0
|
||||
for result.Next() {
|
||||
var dbPkg db.Package
|
||||
err = result.StructScan(&dbPkg)
|
||||
if err != nil {
|
||||
t.Errorf("Expected no error, got %s", err)
|
||||
}
|
||||
|
||||
for _, dbPkg := range result {
|
||||
assert.Equal(t, "foo", dbPkg.Name)
|
||||
assert.Equal(t, db.NewJSON(map[string]string{"": "main desc"}), dbPkg.Description)
|
||||
assert.Equal(t, db.NewJSON(map[string][]string{"": {"sudo"}}), dbPkg.Depends)
|
||||
assert.Equal(t, map[string]string{"": "main desc"}, dbPkg.Description)
|
||||
assert.Equal(t, map[string][]string{"": {"sudo"}}, dbPkg.Depends)
|
||||
pkgCount++
|
||||
}
|
||||
assert.Equal(t, 1, pkgCount)
|
||||
@ -125,20 +119,18 @@ meta_buz() {
|
||||
assert.NoError(t, err)
|
||||
|
||||
pkgCount := 0
|
||||
for result.Next() {
|
||||
var dbPkg db.Package
|
||||
err = result.StructScan(&dbPkg)
|
||||
for _, dbPkg := range result {
|
||||
if err != nil {
|
||||
t.Errorf("Expected no error, got %s", err)
|
||||
}
|
||||
if dbPkg.Name == "bar" {
|
||||
assert.Equal(t, db.NewJSON(map[string]string{"": "foo desc"}), dbPkg.Description)
|
||||
assert.Equal(t, db.NewJSON(map[string][]string{"": {"sudo"}}), dbPkg.Depends)
|
||||
assert.Equal(t, map[string]string{"": "foo desc"}, dbPkg.Description)
|
||||
assert.Equal(t, map[string][]string{"": {"sudo"}}, dbPkg.Depends)
|
||||
}
|
||||
|
||||
if dbPkg.Name == "buz" {
|
||||
assert.Equal(t, db.NewJSON(map[string]string{"": "main desc"}), dbPkg.Description)
|
||||
assert.Equal(t, db.NewJSON(map[string][]string{"": {"sudo", "doas"}}), dbPkg.Depends)
|
||||
assert.Equal(t, map[string]string{"": "main desc"}, dbPkg.Description)
|
||||
assert.Equal(t, map[string][]string{"": {"sudo", "doas"}}, dbPkg.Depends)
|
||||
}
|
||||
pkgCount++
|
||||
}
|
||||
|
@ -129,15 +129,7 @@ func TestPull(t *testing.T) {
|
||||
t.Fatalf("Expected no error, got %s", err)
|
||||
}
|
||||
|
||||
var pkgAmt int
|
||||
for result.Next() {
|
||||
var dbPkg db.Package
|
||||
err = result.StructScan(&dbPkg)
|
||||
if err != nil {
|
||||
t.Errorf("Expected no error, got %s", err)
|
||||
}
|
||||
pkgAmt++
|
||||
}
|
||||
pkgAmt := len(result)
|
||||
|
||||
if pkgAmt == 0 {
|
||||
t.Errorf("Expected at least 1 matching package, but got %d", pkgAmt)
|
||||
|
@ -139,14 +139,14 @@ func parseScript(
|
||||
}
|
||||
|
||||
type PackageInfo struct {
|
||||
Version string `sh:"version,required"`
|
||||
Release int `sh:"release,required"`
|
||||
Epoch uint `sh:"epoch"`
|
||||
Architectures db.JSON[[]string] `sh:"architectures"`
|
||||
Licenses db.JSON[[]string] `sh:"license"`
|
||||
Provides db.JSON[[]string] `sh:"provides"`
|
||||
Conflicts db.JSON[[]string] `sh:"conflicts"`
|
||||
Replaces db.JSON[[]string] `sh:"replaces"`
|
||||
Version string `sh:"version,required"`
|
||||
Release int `sh:"release,required"`
|
||||
Epoch uint `sh:"epoch"`
|
||||
Architectures []string `sh:"architectures"`
|
||||
Licenses []string `sh:"license"`
|
||||
Provides []string `sh:"provides"`
|
||||
Conflicts []string `sh:"conflicts"`
|
||||
Replaces []string `sh:"replaces"`
|
||||
}
|
||||
|
||||
func (inf *PackageInfo) ToPackage(repoName string) *db.Package {
|
||||
@ -164,13 +164,13 @@ func (inf *PackageInfo) ToPackage(repoName string) *db.Package {
|
||||
|
||||
func EmptyPackage(repoName string) *db.Package {
|
||||
return &db.Package{
|
||||
Group: db.NewJSON(map[string]string{}),
|
||||
Summary: db.NewJSON(map[string]string{}),
|
||||
Description: db.NewJSON(map[string]string{}),
|
||||
Homepage: db.NewJSON(map[string]string{}),
|
||||
Maintainer: db.NewJSON(map[string]string{}),
|
||||
Depends: db.NewJSON(map[string][]string{}),
|
||||
BuildDepends: db.NewJSON(map[string][]string{}),
|
||||
Group: map[string]string{},
|
||||
Summary: map[string]string{},
|
||||
Description: map[string]string{},
|
||||
Homepage: map[string]string{},
|
||||
Maintainer: map[string]string{},
|
||||
Depends: map[string][]string{},
|
||||
BuildDepends: map[string][]string{},
|
||||
Repository: repoName,
|
||||
}
|
||||
}
|
||||
@ -193,8 +193,7 @@ func resolveOverrides(runner *interp.Runner, pkg *db.Package) {
|
||||
override := strings.TrimPrefix(name, prefix)
|
||||
override = strings.TrimPrefix(override, "_")
|
||||
|
||||
field := pkgVal.FieldByName(field)
|
||||
varVal := field.FieldByName("Val")
|
||||
varVal := pkgVal.FieldByName(field)
|
||||
varType := varVal.Type()
|
||||
|
||||
switch varType.Elem().String() {
|
||||
|
Reference in New Issue
Block a user