5 Commits
Author SHA1 Message Date
EnumDev 4217626dde Update passed flag to bpm 2025-10-05 20:00:05 +03:00
EnumDevandGitHub d7da13034c Merge pull request #1 from EnumeratedDev/go_rewrite
Rewrite bpm-utils in go
2025-10-05 09:37:55 +00:00
EnumDev cdb044d751 Update pkg.info format 2025-10-05 12:14:54 +03:00
EnumDev 60b0f4489e Improve git branch checksum fetching 2025-10-05 11:00:15 +03:00
EnumDev 65c32d628f Update repository version checking messages 2025-10-03 14:18:53 +03:00
4 changed files with 29 additions and 16 deletions
+1 -1
View File
@@ -169,7 +169,7 @@ func compilePackage(archive string) {
if *yesAll {
args = append(args, "-y")
}
args = append(args, "--fd=3")
args = append(args, "--output-fd=3")
args = append(args, archive)
cmd := exec.Command("bpm", args...)
cmd.Stdin = os.Stdin
+9 -2
View File
@@ -3,6 +3,7 @@ package main
import (
bpmutilsshared "bpm-utils-shared"
"bufio"
"context"
"fmt"
"io/fs"
"log"
@@ -176,6 +177,10 @@ func checkVersionsFunc(repo string) {
log.Fatalf("Could not read package info: %s", err)
}
if verbose {
fmt.Printf("Checking version for package (%s)...\n", pkgInfo.Name)
}
// Check cached latest version
latestVersion := ""
if cachedVersion, ok := cachedVersions[pkgInfo.Name]; ok && !force && time.Since(time.UnixMilli(cachedVersion.Timestamp)).Milliseconds() < 604800000 {
@@ -188,7 +193,9 @@ func checkVersionsFunc(repo string) {
}
// Execute check-version.sh script
cmd := exec.Command("bash", "-e", path.Join(dir, "check-version.sh"))
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
cmd := exec.CommandContext(ctx, "bash", "-e", path.Join(dir, "check-version.sh"))
cmd.Environ()
output, err := cmd.Output()
if err != nil {
@@ -261,6 +268,7 @@ func checkVersionsFunc(repo string) {
for _, pkg := range pkgsWithoutScript {
log.Printf("Warning: package (%s) has no check-version.sh script\n", pkg)
}
}
// Print errors
keys = slices.Collect(maps.Keys(pkgsWithError))
@@ -268,7 +276,6 @@ func checkVersionsFunc(repo string) {
for _, pkg := range keys {
log.Printf("Error: check-version.sh script for package (%s) failed: %s", pkg, pkgsWithError[pkg])
}
}
// Print summary
fmt.Println("----- Summary -----")
+1 -1
View File
@@ -130,8 +130,8 @@ func createDirectory() {
Downloads: []bpmutilsshared.PackageDownload{
{
Url: "https://wwww.my-url.com/file.tar.gz",
ExtractTo: "${BPM_SOURCE}",
ExtractStripComponents: 1,
ExtractToBPMSource: true,
Checksum: "replaceme",
},
},
+11 -5
View File
@@ -34,11 +34,17 @@ type PackageInfo struct {
type PackageDownload struct {
Url string `yaml:"url"`
Type string `yaml:"type,omitempty"`
NoExtract bool `yaml:"no_extract,omitempty"`
ExtractToBPMSource bool `yaml:"extract_to_bpm_source,omitempty"`
ExtractStripComponents int `yaml:"extract_strip_components,omitempty"`
GitBranch string `yaml:"git_branch,omitempty"`
Filepath string `yaml:"filepath,omitempty,omitempty"`
// Archive options
NoExtract bool `yaml:"no_extract,omitempty"`
ExtractTo string `yaml:"extract_to,omitempty"`
ExtractStripComponents int `yaml:"extract_strip_components,omitempty"`
// Git options
CloneTo string `yaml:"clone_to,omitempty"`
GitBranch string `yaml:"git_branch,omitempty"`
Checksum string `yaml:"checksum,omitempty"`
}
@@ -149,7 +155,7 @@ func (pkgDownload *PackageDownload) CalculateChecksum(pkgInfo *PackageInfo) (str
return "", fmt.Errorf("'git_branch' field cannot be empty")
}
cmd := exec.Command("sh", "-c", fmt.Sprintf("git ls-remote --refs %s | grep 'refs/.*/%s$' | awk '{print $1}'", pkgDownload.Url, gitBranch))
cmd := exec.Command("sh", "-c", fmt.Sprintf("git ls-remote -bt %s | grep -E 'refs/.*/%s(\\^\\{\\})?$' | tail -n1 | awk '{print $1}'", pkgDownload.Url, gitBranch))
cmd.Stderr = os.Stderr
checksum, err := cmd.Output()