update: Move to go-configparser from go-ini for multiline support
This commit is contained in:
43
lib/repo.go
43
lib/repo.go
@ -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
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user