From 9625b5d7affd9fde9ed31bce5017d71a839ff8a1 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Sun, 28 Sep 2025 12:39:30 +0300 Subject: [PATCH] Use drone/envsubst module for bash variable expansion --- src/bpm-package/go.mod | 2 ++ src/bpm-package/go.sum | 4 ++++ src/bpm-repo/go.mod | 2 ++ src/bpm-repo/go.sum | 4 ++++ src/bpm-setup/go.mod | 2 ++ src/bpm-setup/go.sum | 4 ++++ src/bpm-utils-shared/go.mod | 2 ++ src/bpm-utils-shared/go.sum | 4 ++++ src/bpm-utils-shared/package.go | 11 +++++++++-- 9 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/bpm-package/go.mod b/src/bpm-package/go.mod index dac4e62..c58762b 100644 --- a/src/bpm-package/go.mod +++ b/src/bpm-package/go.mod @@ -8,4 +8,6 @@ require ( gopkg.in/yaml.v3 v3.0.1 ) +require github.com/drone/envsubst v1.0.3 // indirect + replace bpm-utils-shared => ../bpm-utils-shared diff --git a/src/bpm-package/go.sum b/src/bpm-package/go.sum index bea0ee8..06586f3 100644 --- a/src/bpm-package/go.sum +++ b/src/bpm-package/go.sum @@ -1,3 +1,7 @@ +github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= +github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/src/bpm-repo/go.mod b/src/bpm-repo/go.mod index 7170ff8..df2f975 100644 --- a/src/bpm-repo/go.mod +++ b/src/bpm-repo/go.mod @@ -8,4 +8,6 @@ require ( gopkg.in/yaml.v3 v3.0.1 ) +require github.com/drone/envsubst v1.0.3 // indirect + replace bpm-utils-shared => ../bpm-utils-shared diff --git a/src/bpm-repo/go.sum b/src/bpm-repo/go.sum index bea0ee8..06586f3 100644 --- a/src/bpm-repo/go.sum +++ b/src/bpm-repo/go.sum @@ -1,3 +1,7 @@ +github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= +github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/src/bpm-setup/go.mod b/src/bpm-setup/go.mod index 7cb78f0..beac012 100644 --- a/src/bpm-setup/go.mod +++ b/src/bpm-setup/go.mod @@ -8,4 +8,6 @@ require ( gopkg.in/yaml.v3 v3.0.1 ) +require github.com/drone/envsubst v1.0.3 // indirect + replace bpm-utils-shared => ../bpm-utils-shared diff --git a/src/bpm-setup/go.sum b/src/bpm-setup/go.sum index bea0ee8..06586f3 100644 --- a/src/bpm-setup/go.sum +++ b/src/bpm-setup/go.sum @@ -1,3 +1,7 @@ +github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= +github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/src/bpm-utils-shared/go.mod b/src/bpm-utils-shared/go.mod index cd8ca76..34566b5 100644 --- a/src/bpm-utils-shared/go.mod +++ b/src/bpm-utils-shared/go.mod @@ -3,3 +3,5 @@ module bpm-utils-shared go 1.23 require gopkg.in/yaml.v3 v3.0.1 + +require github.com/drone/envsubst v1.0.3 diff --git a/src/bpm-utils-shared/go.sum b/src/bpm-utils-shared/go.sum index a62c313..2c93c5b 100644 --- a/src/bpm-utils-shared/go.sum +++ b/src/bpm-utils-shared/go.sum @@ -1,3 +1,7 @@ +github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= +github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/src/bpm-utils-shared/package.go b/src/bpm-utils-shared/package.go index 82f9469..277b6ca 100644 --- a/src/bpm-utils-shared/package.go +++ b/src/bpm-utils-shared/package.go @@ -6,6 +6,7 @@ import ( "os/exec" "strings" + "github.com/drone/envsubst" "gopkg.in/yaml.v3" ) @@ -123,7 +124,7 @@ func (pkgDownload *PackageDownload) CalculateChecksum(pkgInfo *PackageInfo) (str // Replace variables in download url downloadUrl := pkgDownload.Url - downloadUrl = os.Expand(downloadUrl, func(s string) string { + downloadUrl, err := envsubst.Eval(downloadUrl, func(s string) string { switch s { case "BPM_PKG_VERSION": return pkgInfo.Version @@ -133,6 +134,9 @@ func (pkgDownload *PackageDownload) CalculateChecksum(pkgInfo *PackageInfo) (str return "" } }) + if err != nil { + return "", err + } cmd := exec.Command("sh", "-c", fmt.Sprintf("curl -s -L %s | sha256sum | awk '{print $1}'", downloadUrl)) cmd.Stderr = os.Stderr @@ -148,7 +152,7 @@ func (pkgDownload *PackageDownload) CalculateChecksum(pkgInfo *PackageInfo) (str // Replace variables in git branch gitBranch := pkgDownload.GitBranch - gitBranch = os.Expand(gitBranch, func(s string) string { + gitBranch, err := envsubst.Eval(gitBranch, func(s string) string { switch s { case "BPM_PKG_VERSION": return pkgInfo.Version @@ -158,6 +162,9 @@ func (pkgDownload *PackageDownload) CalculateChecksum(pkgInfo *PackageInfo) (str return "" } }) + if err != nil { + return "", err + } if pkgDownload.GitBranch == "" { return "", fmt.Errorf("'git_branch' field cannot be empty")