mirror of
https://github.com/EnumeratedDev/bpm.git
synced 2026-09-16 02:26:12 +00:00
Improve package info parsing
This commit is contained in:
+19
-25
@@ -27,8 +27,8 @@ type BPMPackage struct {
|
|||||||
|
|
||||||
type PackageInfo struct {
|
type PackageInfo struct {
|
||||||
Name string `yaml:"name"`
|
Name string `yaml:"name"`
|
||||||
Description string `yaml:"description"`
|
Description string `yaml:"description,omitempty"`
|
||||||
Version string `yaml:"version"`
|
Version string `yaml:"version,omitempty"`
|
||||||
Revision int `yaml:"revision,omitempty"`
|
Revision int `yaml:"revision,omitempty"`
|
||||||
Url string `yaml:"url,omitempty"`
|
Url string `yaml:"url,omitempty"`
|
||||||
License string `yaml:"license,omitempty"`
|
License string `yaml:"license,omitempty"`
|
||||||
@@ -37,8 +37,8 @@ type PackageInfo struct {
|
|||||||
Type string `yaml:"type,omitempty"`
|
Type string `yaml:"type,omitempty"`
|
||||||
Keep []string `yaml:"keep,omitempty"`
|
Keep []string `yaml:"keep,omitempty"`
|
||||||
Depends []string `yaml:"depends,omitempty"`
|
Depends []string `yaml:"depends,omitempty"`
|
||||||
MakeDepends []string `yaml:"make_depends,omitempty"`
|
|
||||||
OptionalDepends []string `yaml:"optional_depends,omitempty"`
|
OptionalDepends []string `yaml:"optional_depends,omitempty"`
|
||||||
|
MakeDepends []string `yaml:"make_depends,omitempty"`
|
||||||
Conflicts []string `yaml:"conflicts,omitempty"`
|
Conflicts []string `yaml:"conflicts,omitempty"`
|
||||||
Replaces []string `yaml:"replaces,omitempty"`
|
Replaces []string `yaml:"replaces,omitempty"`
|
||||||
Provides []string `yaml:"provides,omitempty"`
|
Provides []string `yaml:"provides,omitempty"`
|
||||||
@@ -48,13 +48,13 @@ type PackageInfo struct {
|
|||||||
|
|
||||||
type PackageDownload struct {
|
type PackageDownload struct {
|
||||||
Url string `yaml:"url"`
|
Url string `yaml:"url"`
|
||||||
Type string `yaml:"type"`
|
Type string `yaml:"type,omitempty"`
|
||||||
NoExtract bool `yaml:"no_extract"`
|
NoExtract bool `yaml:"no_extract,omitempty"`
|
||||||
ExtractToBPMSource bool `yaml:"extract_to_bpm_source"`
|
ExtractToBPMSource bool `yaml:"extract_to_bpm_source,omitempty"`
|
||||||
ExtractStripComponents int `yaml:"extract_strip_components"`
|
ExtractStripComponents int `yaml:"extract_strip_components,omitempty"`
|
||||||
GitBranch string `yaml:"git_branch"`
|
GitBranch string `yaml:"git_branch,omitempty"`
|
||||||
Filepath string `yaml:"filepath,omitempty"`
|
Filepath string `yaml:"filepath,omitempty,omitempty"`
|
||||||
Checksum string `yaml:"checksum"`
|
Checksum string `yaml:"checksum,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PackageFileEntry struct {
|
type PackageFileEntry struct {
|
||||||
@@ -418,15 +418,8 @@ func executePackageScript(pkg, rootDir string, verbose bool, packageScript strin
|
|||||||
|
|
||||||
func ReadPackageInfo(contents string) (*PackageInfo, error) {
|
func ReadPackageInfo(contents string) (*PackageInfo, error) {
|
||||||
pkgInfo := &PackageInfo{
|
pkgInfo := &PackageInfo{
|
||||||
Name: "",
|
|
||||||
Description: "",
|
|
||||||
Version: "",
|
|
||||||
Revision: 1,
|
Revision: 1,
|
||||||
Url: "",
|
|
||||||
License: "",
|
|
||||||
Arch: "",
|
|
||||||
OutputArch: GetArch(),
|
OutputArch: GetArch(),
|
||||||
Type: "",
|
|
||||||
Keep: make([]string, 0),
|
Keep: make([]string, 0),
|
||||||
Depends: make([]string, 0),
|
Depends: make([]string, 0),
|
||||||
MakeDepends: make([]string, 0),
|
MakeDepends: make([]string, 0),
|
||||||
@@ -469,28 +462,29 @@ func ReadPackageInfo(contents string) (*PackageInfo, error) {
|
|||||||
return nil, fmt.Errorf("invalid split package name: %s", splitPkg.Name)
|
return nil, fmt.Errorf("invalid split package name: %s", splitPkg.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Turn split package into json data
|
// Turn split package into yaml data
|
||||||
splitPkgJson, err := yaml.Marshal(splitPkg)
|
splitPkgYaml, err := yaml.Marshal(splitPkg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clone all main package fields onto split package
|
// Clone all main package fields onto split package
|
||||||
pkgInfoClone := *pkgInfo
|
*splitPkg = *pkgInfo
|
||||||
pkgInfo.SplitPackages[i] = &pkgInfoClone
|
|
||||||
|
|
||||||
// Set split package field of split package to nil
|
// Set split package field of split package to nil
|
||||||
pkgInfo.SplitPackages[i].SplitPackages = nil
|
splitPkg.SplitPackages = nil
|
||||||
|
|
||||||
// Unmarshal json data back to struct
|
// Unmarshal json data back to struct
|
||||||
err = yaml.Unmarshal(splitPkgJson, &pkgInfo.SplitPackages[i])
|
err = yaml.Unmarshal(splitPkgYaml, splitPkg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force set split package version, revision
|
// Force set split package version, revision
|
||||||
pkgInfo.SplitPackages[i].Version = pkgInfo.Version
|
splitPkg.Version = pkgInfo.Version
|
||||||
pkgInfo.SplitPackages[i].Revision = pkgInfo.Revision
|
splitPkg.Revision = pkgInfo.Revision
|
||||||
|
|
||||||
|
pkgInfo.SplitPackages[i] = splitPkg
|
||||||
}
|
}
|
||||||
|
|
||||||
return pkgInfo, nil
|
return pkgInfo, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user