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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := exec.Command("/bin/bash", temp.Name())
|
cmd := exec.Command("/bin/bash", temp.Name())
|
||||||
|
if !BPMConfig.SilentCompilation {
|
||||||
cmd.Stdin = os.Stdin
|
cmd.Stdin = os.Stdin
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
}
|
||||||
cmd.Dir = rootDir
|
cmd.Dir = rootDir
|
||||||
cmd.Env = os.Environ()
|
cmd.Env = os.Environ()
|
||||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_ROOT=%s", rootDir))
|
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_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_URL=%s", pkgInfo.Url))
|
||||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_PKG_ARCH=%s", pkgInfo.Arch))
|
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))
|
depends := make([]string, len(pkgInfo.Depends))
|
||||||
copy(depends, pkgInfo.Depends)
|
copy(depends, pkgInfo.Depends)
|
||||||
for i := 0; i < len(depends); i++ {
|
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_DEPENDS=(%s)", strings.Join(depends, " ")))
|
||||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_PKG_MAKE_DEPENDS=(%s)", strings.Join(makeDepends, " ")))
|
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")
|
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()
|
err = cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 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))
|
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)
|
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.Stdin = os.Stdin
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
}
|
||||||
cmd.Dir = compiledDir
|
cmd.Dir = compiledDir
|
||||||
fmt.Printf("running command: %s %s\n", cmd.Path, strings.Join(cmd.Args, " "))
|
fmt.Printf("running command: %s %s\n", cmd.Path, strings.Join(cmd.Args, " "))
|
||||||
err = cmd.Run()
|
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 {
|
if _, err := os.Stat(path.Join(pkgDir, "post_remove.sh")); err == nil {
|
||||||
cmd := exec.Command("/bin/bash", path.Join(pkgDir, "post_remove.sh"))
|
cmd := exec.Command("/bin/bash", path.Join(pkgDir, "post_remove.sh"))
|
||||||
|
if !BPMConfig.SilentCompilation {
|
||||||
cmd.Stdin = os.Stdin
|
cmd.Stdin = os.Stdin
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
}
|
||||||
cmd.Dir = rootDir
|
cmd.Dir = rootDir
|
||||||
cmd.Env = os.Environ()
|
cmd.Env = os.Environ()
|
||||||
cmd.Env = append(cmd.Env, fmt.Sprintf("BPM_ROOT=%s", rootDir))
|
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
|
module capcreepergr.me/bpm
|
||||||
|
|
||||||
go 1.22
|
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
|
var pkgListNames = false
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
bpm_utils.ReadConfig()
|
||||||
resolveFlags()
|
resolveFlags()
|
||||||
resolveCommand()
|
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
|
license: GPL3
|
||||||
architecture: x86_64
|
architecture: x86_64
|
||||||
type: binary
|
type: binary
|
||||||
|
keep: etc/bpm.conf
|
Loading…
x
Reference in New Issue
Block a user