Added configuration file to BPM
This commit is contained in:
parent
8db2635314
commit
ea469c4180
29
bpm_utils/config.go
Normal file
29
bpm_utils/config.go
Normal file
@ -0,0 +1,29 @@
|
||||
package bpm_utils
|
||||
|
||||
import (
|
||||
"gopkg.in/yaml.v3"
|
||||
"os"
|
||||
)
|
||||
|
||||
type BPMConfigStruct struct {
|
||||
CompilationEnv []string `yaml:"compilation_env"`
|
||||
SilentCompilation bool `yaml:"silent_compilation"`
|
||||
}
|
||||
|
||||
var BPMConfig BPMConfigStruct = BPMConfigStruct{
|
||||
CompilationEnv: make([]string, 0),
|
||||
SilentCompilation: false}
|
||||
|
||||
func ReadConfig() {
|
||||
if _, err := os.Stat("/etc/bpm.conf"); os.IsNotExist(err) {
|
||||
return
|
||||
}
|
||||
bytes, err := os.ReadFile("/etc/bpm.conf")
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = yaml.Unmarshal(bytes, &BPMConfig)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
@ -193,10 +193,13 @@ func ExecutePackageScripts(filename, rootDir string, operation Operation, postOp
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd := exec.Command("/bin/bash", temp.Name())
|
||||
if !BPMConfig.SilentCompilation {
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
}
|
||||
cmd.Dir = rootDir
|
||||
cmd.Env = os.Environ()
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_ROOT=%s", rootDir))
|
||||
@ -680,10 +683,6 @@ fi
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_PKG_VERSION=%s", pkgInfo.Version))
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_PKG_URL=%s", pkgInfo.Url))
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_PKG_ARCH=%s", pkgInfo.Arch))
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
|
||||
depends := make([]string, len(pkgInfo.Depends))
|
||||
copy(depends, pkgInfo.Depends)
|
||||
for i := 0; i < len(depends); i++ {
|
||||
@ -696,7 +695,16 @@ fi
|
||||
}
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_PKG_DEPENDS=(%s)", strings.Join(depends, " ")))
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_PKG_MAKE_DEPENDS=(%s)", strings.Join(makeDepends, " ")))
|
||||
for _, value := range BPMConfig.CompilationEnv {
|
||||
cmd.Env = append(cmd.Env, value)
|
||||
}
|
||||
cmd.Env = append(cmd.Env, "BPM_PKG_TYPE=source")
|
||||
|
||||
if !BPMConfig.SilentCompilation {
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
}
|
||||
err = cmd.Run()
|
||||
if err != nil {
|
||||
return err, nil
|
||||
@ -810,9 +818,11 @@ fi
|
||||
}
|
||||
sed := fmt.Sprintf("s/%s/files/", strings.Replace(strings.TrimPrefix(path.Join(temp, "/output/"), "/"), "/", `\/`, -1))
|
||||
cmd := exec.Command("/usr/bin/tar", "-czvf", compiledInfo.Name+"-"+compiledInfo.Version+".bpm", "pkg.info", path.Join(temp, "/output/"), "--transform", sed)
|
||||
if !BPMConfig.SilentCompilation {
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
}
|
||||
cmd.Dir = compiledDir
|
||||
fmt.Printf("running command: %s %s\n", cmd.Path, strings.Join(cmd.Args, " "))
|
||||
err = cmd.Run()
|
||||
@ -1323,9 +1333,11 @@ func RemovePackage(pkg, rootDir string) error {
|
||||
}
|
||||
if _, err := os.Stat(path.Join(pkgDir, "post_remove.sh")); err == nil {
|
||||
cmd := exec.Command("/bin/bash", path.Join(pkgDir, "post_remove.sh"))
|
||||
if !BPMConfig.SilentCompilation {
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
}
|
||||
cmd.Dir = rootDir
|
||||
cmd.Env = os.Environ()
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_ROOT=%s", rootDir))
|
||||
|
2
go.mod
2
go.mod
@ -1,3 +1,5 @@
|
||||
module capcreepergr.me/bpm
|
||||
|
||||
go 1.22
|
||||
|
||||
require gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
|
3
go.sum
Normal file
3
go.sum
Normal file
@ -0,0 +1,3 @@
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
1
main.go
1
main.go
@ -32,6 +32,7 @@ var pkgListNumbers = false
|
||||
var pkgListNames = false
|
||||
|
||||
func main() {
|
||||
bpm_utils.ReadConfig()
|
||||
resolveFlags()
|
||||
resolveCommand()
|
||||
}
|
||||
|
Binary file not shown.
3
test_packages/x86_64/bpm/files/etc/bpm.conf
Normal file
3
test_packages/x86_64/bpm/files/etc/bpm.conf
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
compilation_env: []
|
||||
silent_compilation: false
|
Binary file not shown.
@ -5,3 +5,4 @@ url: https://gitlab.com/bubble-package-manager/bpm/
|
||||
license: GPL3
|
||||
architecture: x86_64
|
||||
type: binary
|
||||
keep: etc/bpm.conf
|
Loading…
x
Reference in New Issue
Block a user