mirror of
https://github.com/EnumeratedDev/bpm-utils.git
synced 2026-09-16 02:56:11 +00:00
bpm-package: add package signing
This commit is contained in:
+51
-1
@@ -21,13 +21,14 @@ import (
|
||||
|
||||
var compile = flag.BoolP("compile", "c", false, "Compile BPM source package")
|
||||
var verbose = flag.BoolP("verbose", "v", false, "Show additional information about the compilation process")
|
||||
var skipCheck = flag.BoolP("skip-checks", "s", false, "Skip 'check' function while compiling")
|
||||
var skipCheck = flag.Bool("skip-checks", false, "Skip 'check' function while compiling")
|
||||
var keepCompilationFiles = flag.BoolP("keep", "k", false, "Keep compilation files after successful package compilation")
|
||||
var installDepends = flag.BoolP("depends", "d", false, "Install package dependencies for compilation")
|
||||
var installPackage = flag.BoolP("install", "i", false, "Install compiled BPM package after compilation finishes")
|
||||
var compilationJobs = flag.IntP("jobs", "j", 0, "Set the amount of concurrent processes to use for source package compilation")
|
||||
var moveToBinaryDir = flag.BoolP("move", "m", false, "Move output packages to the current repository's binary directory")
|
||||
var updateInfo = flag.BoolP("update-info", "u", false, "Update the pkg.info file")
|
||||
var signPackage = flag.BoolP("sign", "s", false, "Sign package using GPG")
|
||||
var yesAll = flag.BoolP("yes", "y", false, "Accept all confirmation prompts")
|
||||
|
||||
func main() {
|
||||
@@ -149,6 +150,18 @@ func createArchive() string {
|
||||
}
|
||||
}
|
||||
|
||||
// Remove old BPM archive signatures in current directory
|
||||
oldSignatures, err := filepath.Glob("*.sig")
|
||||
if err != nil {
|
||||
log.Printf("Warning: could not search for old BPM archive signatures: %s", err)
|
||||
}
|
||||
for _, signature := range oldSignatures {
|
||||
err = os.Remove(signature)
|
||||
if err != nil {
|
||||
log.Printf("Warning: could not remove old BPM archive signature (%s): %s", signature, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Create filename
|
||||
filename := fmt.Sprintf("%s-%s-%d-%s-src.bpm", pkgInfo.Name, pkgInfo.Version, pkgInfo.Revision, pkgInfo.Arch)
|
||||
|
||||
@@ -164,6 +177,19 @@ func createArchive() string {
|
||||
log.Fatalf("Error: failed to create BPM source archive: %s", err)
|
||||
}
|
||||
|
||||
// Sign package
|
||||
if *signPackage {
|
||||
cmd := exec.Command("gpg", "--detach-sign", filename)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Stdin = os.Stdin
|
||||
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
log.Fatalf("Error: could not sign package: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Get absolute path to filename
|
||||
absFilepath, err := filepath.Abs(filename)
|
||||
if err != nil {
|
||||
@@ -246,6 +272,14 @@ func compilePackage(archive string) {
|
||||
if err != nil {
|
||||
log.Printf("Warning: could not remove old binary package (%s): %s", pkgFilepath, err)
|
||||
}
|
||||
|
||||
// Remove package signature
|
||||
if _, err := os.Stat(pkgFilepath + ".sig"); err == nil {
|
||||
err := os.Remove(pkgFilepath + ".sig")
|
||||
if err != nil {
|
||||
log.Printf("Warning: could not remove old binary package signature (%s): %s", pkgFilepath+".str", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,6 +300,22 @@ func compilePackage(archive string) {
|
||||
bpmutilsshared.UpdateDatabases(repo)
|
||||
}
|
||||
|
||||
// Sign package
|
||||
if *signPackage {
|
||||
for k, v := range outputPkgs {
|
||||
cmd := exec.Command("gpg", "--detach-sign", v)
|
||||
cmd.Dir = path.Dir(v)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Stdin = os.Stdin
|
||||
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
log.Fatalf("Error: could not sign package (%s) at: %s", k, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Print out generated packages
|
||||
for k, v := range outputPkgs {
|
||||
fmt.Printf("Package (%s) was successfully compiled! Binary package generated at: %s\n", k, v)
|
||||
|
||||
Reference in New Issue
Block a user