Add hook functionality #9
@ -6,6 +6,8 @@ import (
|
|||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path"
|
||||||
|
"path/filepath"
|
||||||
"slices"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
@ -102,20 +104,24 @@ func (hook *BPMHook) Execute(packageChanges map[string]string, verbose bool, roo
|
|||||||
|
|
||||||
// Check if any targets are met
|
// Check if any targets are met
|
||||||
targetMet := false
|
targetMet := false
|
||||||
for _, t1 := range hook.Targets {
|
for _, target := range hook.Targets {
|
||||||
if targetMet {
|
if targetMet {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if hook.TargetType == "package" {
|
if hook.TargetType == "package" {
|
||||||
for t2, operation := range packageChanges {
|
for change, operation := range packageChanges {
|
||||||
if t1 == t2 && slices.Contains(hook.TriggerOperations, operation) {
|
if target == change && slices.Contains(hook.TriggerOperations, operation) {
|
||||||
targetMet = true
|
targetMet = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for _, t2 := range modifiedFiles {
|
glob, err := filepath.Glob(path.Join(rootDir, target))
|
||||||
if strings.HasPrefix(t2.Path, t1) {
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, change := range modifiedFiles {
|
||||||
|
if slices.Contains(glob, path.Join(rootDir, change.Path)) {
|
||||||
targetMet = true
|
targetMet = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user