update: Move to go-configparser from go-ini for multiline support

This commit is contained in:
ngn
2024-02-23 21:31:38 +03:00
parent 564ccaa109
commit caabb73a12
5 changed files with 627 additions and 283 deletions

View File

@ -1,14 +1,16 @@
package lib
import (
"bytes"
"encoding/json"
"errors"
"net/url"
"os"
"strconv"
"github.com/bigkevmcd/go-configparser"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/log"
"gopkg.in/ini.v1"
)
type Config struct {
@ -34,38 +36,38 @@ type Package struct {
Ver string
}
func LoadPackgae(sec *ini.Section) (Package, error) {
var pkg Package
pkg.Name = sec.Name()
func LoadPackgae(repo *configparser.ConfigParser, s string) (Package, error) {
var (
pkg Package
err error
)
pkg.Name = s
k, err := sec.GetKey("version")
pkg.Ver, err = repo.Get(s, "version")
if err != nil {
return pkg, err
}
pkg.Ver = k.String()
k, err = sec.GetKey("desc")
pkg.Desc, err = repo.Get(s, "desc")
if err != nil {
return pkg, err
}
pkg.Desc = k.String()
k, err = sec.GetKey("size")
ssize, err := repo.Get(s, "size")
if err != nil {
return pkg, err
}
size, err := k.Int()
size, err := strconv.Atoi(ssize)
if err != nil {
return pkg, err
}
pkg.Size = SizeFromBytes(size)
k, err = sec.GetKey("depends")
pkg.Deps, err = repo.Get(s, "depends")
if err != nil {
return pkg, err
}
pkg.Deps = k.String()
return pkg, nil
}
@ -93,20 +95,17 @@ func GetRepo(r Repo) ([]Package, error){
return pkgs, err
}
repo := ini.Empty()
err = repo.Append([]byte(list))
if err != nil {
return pkgs, err
}
repo := configparser.New()
repo.ParseReader(bytes.NewReader([]byte(list)))
for _, s := range repo.Sections() {
if s.Name() == "DEFAULT" {
if s == "DEFAULT" {
continue
}
pkg, err := LoadPackgae(s)
pkg, err := LoadPackgae(repo, s)
if err != nil {
log.Errorf("Error loading %s: %s", s.Name(), err)
log.Errorf("Error loading %s: %s", s, err)
continue
}