summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2019-06-18 14:49:16 +0700
committerShulhan <ms@kilabit.info>2019-06-18 14:49:16 +0700
commit2c0156f2a03febd7d05518ef2d155a060b9b03e8 (patch)
tree811f535c9c9fb4577e2d275d95f26db1f06dba76
parent560b26738f6632d1f59c80408e4eb0920f62cbb2 (diff)
downloadbeku-2c0156f2a03febd7d05518ef2d155a060b9b03e8.tar.xz
all: update package share from v0.6.1 to v0.7.0
This update bring new change on how to use the ini package.
-rw-r--r--beku.go7
-rw-r--r--env.go63
-rw-r--r--go.mod2
-rw-r--r--go.sum8
-rw-r--r--package.go51
-rw-r--r--package_test.go2
6 files changed, 54 insertions, 79 deletions
diff --git a/beku.go b/beku.go
index 3e6fdf6..f3acc61 100644
--- a/beku.go
+++ b/beku.go
@@ -75,10 +75,9 @@ var (
// ErrPackageName define an error if package name is empty or invalid.
ErrPackageName = errors.New("empty or invalid package name")
- errDBPackageName = "missing package name, line %d at %s"
- errDirNotEmpty = "directory %s is not empty"
- errExcluded = "package '%s' is in excluded list\n"
- errVCS = "unknown VCS mode %s"
+ errDirNotEmpty = "directory %s is not empty"
+ errExcluded = "package '%s' is in excluded list\n"
+ errVCS = "unknown VCS mode %s"
)
var (
diff --git a/env.go b/env.go
index ffebf53..2b41140 100644
--- a/env.go
+++ b/env.go
@@ -572,38 +572,24 @@ func (env *Env) Load(file string) (err error) {
}
func (env *Env) loadBeku() {
- secBeku := env.db.GetSection(sectionBeku, "")
- if secBeku == nil {
- return
- }
+ env.vendor = env.db.GetBool(sectionBeku, "", keyVendor, false)
- for _, v := range secBeku.Vars {
- if v.KeyLower == keyVendor {
- if ini.IsValueBoolTrue(v.Value) {
- env.vendor = true
- _ = env.initVendor()
- }
- }
- if v.KeyLower == keyExclude {
- env.addExclude(v.Value)
- }
+ for _, v := range env.db.Gets(sectionBeku, "", keyExclude) {
+ env.addExclude(v)
}
}
func (env *Env) loadPackages() {
- sections := env.db.GetSections(sectionPackage)
+ sections := env.db.Subs(sectionPackage)
for _, sec := range sections {
- if len(sec.Sub) == 0 {
- fmt.Fprintln(os.Stderr, errDBPackageName, sec.LineNum, env.dbFile)
- continue
- }
- if env.IsExcluded(sec.Sub) {
+ subName := sec.SubName()
+ if env.IsExcluded(subName) {
continue
}
pkg := &Package{
- ImportPath: sec.Sub,
- FullPath: filepath.Join(env.dirSrc, sec.Sub),
+ ImportPath: subName,
+ FullPath: filepath.Join(env.dirSrc, subName),
state: packageStateLoad,
}
@@ -932,47 +918,36 @@ func (env *Env) Save(file string) (err error) {
}
func (env *Env) saveBeku() {
- secBeku := ini.NewSection(sectionBeku, "")
-
if env.vendor {
- secBeku.Set(keyVendor, "true")
+ env.db.Set(sectionBeku, "", keyVendor, "true")
} else {
- secBeku.Set(keyVendor, "false")
+ env.db.Set(sectionBeku, "", keyVendor, "false")
}
for _, exclude := range env.pkgsExclude {
- secBeku.Add(keyExclude, exclude)
+ env.db.Set(sectionBeku, "", keyExclude, exclude)
}
-
- secBeku.AddNewLine()
- env.db.AddSection(secBeku)
}
func (env *Env) savePackages() {
for _, pkg := range env.pkgs {
- sec := ini.NewSection(sectionPackage, pkg.ImportPath)
-
- sec.Set(keyVCSMode, pkg.vcsMode)
- sec.Set(keyRemoteName, pkg.RemoteName)
- sec.Set(keyRemoteURL, pkg.RemoteURL)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyVCSMode, pkg.vcsMode)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyRemoteName, pkg.RemoteName)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyRemoteURL, pkg.RemoteURL)
if len(pkg.RemoteBranch) > 0 {
- sec.Set(keyRemoteBranch, pkg.RemoteBranch)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyRemoteBranch, pkg.RemoteBranch)
}
- sec.Set(keyVersion, pkg.Version)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyVersion, pkg.Version)
for _, dep := range pkg.Deps {
- sec.Add(keyDeps, dep)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyDeps, dep)
}
for _, req := range pkg.RequiredBy {
- sec.Add(keyRequiredBy, req)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyRequiredBy, req)
}
for _, mis := range pkg.DepsMissing {
- sec.Add(keyDepsMissing, mis)
+ env.db.Set(sectionPackage, pkg.ImportPath, keyDepsMissing, mis)
}
-
- sec.AddNewLine()
-
- env.db.AddSection(sec)
}
}
diff --git a/go.mod b/go.mod
index 96c9b83..c8d4cda 100644
--- a/go.mod
+++ b/go.mod
@@ -1,7 +1,7 @@
module github.com/shuLhan/beku
require (
- github.com/shuLhan/share v0.6.1
+ github.com/shuLhan/share v0.7.1-0.20190618074053-d5b0a6ac0630
golang.org/x/tools v0.0.0-20190608022120-eacb66d2a7c3
)
diff --git a/go.sum b/go.sum
index 116d9de..60e2932 100644
--- a/go.sum
+++ b/go.sum
@@ -1,13 +1,13 @@
-github.com/shuLhan/share v0.6.1 h1:oZndm+sroVxYfmRefuRopQ45tnPPFEtntQ5ioFyKcuU=
-github.com/shuLhan/share v0.6.1/go.mod h1:8f/xkNviP0KcccNugzZh4XfmCzh0KBKt74NxuwJ5cpo=
+github.com/shuLhan/share v0.7.1-0.20190618074053-d5b0a6ac0630 h1:8zCabMZjlza3FbBTYT6acqKe9UuRhTOlBu+xGOhEC7k=
+github.com/shuLhan/share v0.7.1-0.20190618074053-d5b0a6ac0630/go.mod h1:p2/wsQ00pX/F1ysg+tXaix99ca2poS7iiWd6WWcVnuI=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190506204251-e1dfcc566284/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190507053917-2953c62de483/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190614084037-d442b75600c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20190608022120-eacb66d2a7c3 h1:sU3tSV6wDhWsvf9NjL0FzRjgAmYnQL5NEhdmcN16UEg=
golang.org/x/tools v0.0.0-20190608022120-eacb66d2a7c3/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
diff --git a/package.go b/package.go
index d5d253f..255b8f0 100644
--- a/package.go
+++ b/package.go
@@ -433,31 +433,32 @@ func (pkg *Package) addDep(env *Env, importPath string) bool {
// load package metadata from database (INI Section).
//
func (pkg *Package) load(sec *ini.Section) {
- for _, v := range sec.Vars {
- switch v.KeyLower {
- case keyVCSMode:
- switch v.Value {
- case VCSModeGit:
- pkg.vcsMode = VCSModeGit
- default:
- pkg.vcsMode = VCSModeGit
- }
- case keyRemoteName:
- pkg.RemoteName = v.Value
- case keyRemoteURL:
- pkg.RemoteURL = v.Value
- case keyRemoteBranch:
- pkg.RemoteBranch = v.Value
- case keyVersion:
- pkg.Version = v.Value
- pkg.isTag = IsTagVersion(pkg.Version)
- case keyDeps:
- pkg.pushDep(v.Value)
- case keyDepsMissing:
- pkg.pushMissing(v.Value)
- case keyRequiredBy:
- pkg.pushRequiredBy(v.Value)
- }
+ switch sec.Val(keyVCSMode) {
+ case VCSModeGit:
+ pkg.vcsMode = VCSModeGit
+ default:
+ pkg.vcsMode = VCSModeGit
+ }
+
+ pkg.RemoteName = sec.Val(keyRemoteName)
+ pkg.RemoteURL = sec.Val(keyRemoteURL)
+ pkg.RemoteBranch = sec.Val(keyRemoteBranch)
+ pkg.Version = sec.Val(keyVersion)
+ pkg.isTag = IsTagVersion(pkg.Version)
+
+ vals := sec.Vals(keyDeps)
+ for x := 0; x < len(vals); x++ {
+ pkg.pushDep(vals[x])
+ }
+
+ vals = sec.Vals(keyDepsMissing)
+ for x := 0; x < len(vals); x++ {
+ pkg.pushMissing(vals[x])
+ }
+
+ vals = sec.Vals(keyRequiredBy)
+ for x := 0; x < len(vals); x++ {
+ pkg.pushRequiredBy(vals[x])
}
}
diff --git a/package_test.go b/package_test.go
index a9356ac..8b7a1b0 100644
--- a/package_test.go
+++ b/package_test.go
@@ -447,7 +447,7 @@ func TestPackageLoad(t *testing.T) {
t.Log(c.desc)
pkg := new(Package)
- sec := cfg.GetSection(sectionPackage, c.pkgName)
+ sec := cfg.Section(sectionPackage, c.pkgName)
pkg.load(sec)