Set source envs in action executions
This commit is contained in:
parent
a238d1f239
commit
ced1de05e8
@ -86,6 +86,11 @@ func actionExecute(
|
|||||||
log.Fatalf("error: failed to load state for %s: %v", source, err)
|
log.Fatalf("error: failed to load state for %s: %v", source, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
envs, err := core.GetEnvs(db, source)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("error: failed to get envs for %s: %v", source, err)
|
||||||
|
}
|
||||||
|
|
||||||
item, err := core.GetItem(db, source, itemId)
|
item, err := core.GetItem(db, source, itemId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("error: failed to get item: %v", err)
|
log.Fatalf("error: failed to get item: %v", err)
|
||||||
@ -104,7 +109,7 @@ func actionExecute(
|
|||||||
log.Fatalf("error: failed to get action: %v", err)
|
log.Fatalf("error: failed to get action: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
newItem, newState, err := core.ExecuteItemAction(item, argv, nil, state, time.Minute)
|
newItem, newState, err := core.ExecuteItemAction(item, argv, envs, state, time.Minute)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("error executing %s: %v", action, err)
|
log.Fatalf("error executing %s: %v", action, err)
|
||||||
}
|
}
|
||||||
|
@ -48,12 +48,17 @@ func sourceFetch(source string, format string, dryRun bool) {
|
|||||||
log.Fatalf("error: failed to load state for %s: %v", source, err)
|
log.Fatalf("error: failed to load state for %s: %v", source, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
envs, err := core.GetEnvs(db, source)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("error: failed to get envs for %s: %v", source, err)
|
||||||
|
}
|
||||||
|
|
||||||
argv, err := core.GetArgvForAction(db, source, "fetch")
|
argv, err := core.GetArgvForAction(db, source, "fetch")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("error: failed to get fetch action: %v", err)
|
log.Fatalf("error: failed to get fetch action: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
items, newState, err := core.Execute(source, argv, nil, state, "", time.Minute)
|
items, newState, err := core.Execute(source, argv, envs, state, "", time.Minute)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("error: failed to execute fetch: %v", err)
|
log.Fatalf("error: failed to execute fetch: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -290,14 +290,19 @@ func UpdateWithFetchedItems(db *DB, source string, state []byte, items []Item) (
|
|||||||
return 0, 0, err
|
return 0, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
envs, err := GetEnvs(db, source)
|
||||||
|
if err != nil {
|
||||||
|
return 0, 0, fmt.Errorf("failed to get envs for %s: %v", source, err)
|
||||||
|
}
|
||||||
|
|
||||||
// If the source has an on-create trigger, run it for each new item
|
// If the source has an on-create trigger, run it for each new item
|
||||||
// On-create errors are ignored to avoid failing the fetch
|
// On-create errors are ignored to avoid failing the fetch
|
||||||
onCreateArgv, err := GetArgvForAction(db, source, "on_create")
|
onCreateArgv, err := GetArgvForAction(db, source, "on_create")
|
||||||
if err == nil {
|
if err == nil && len(onCreateArgv) > 0 {
|
||||||
var updatedNewItems []Item
|
var updatedNewItems []Item
|
||||||
for _, item := range newItems {
|
for _, item := range newItems {
|
||||||
var updatedItem Item
|
var updatedItem Item
|
||||||
updatedItem, state, err = ExecuteItemAction(item, onCreateArgv, nil, state, time.Minute)
|
updatedItem, state, err = ExecuteItemAction(item, onCreateArgv, envs, state, time.Minute)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("error: on_create failed for %s/%s: %v", item.Source, item.Id, err)
|
log.Printf("error: on_create failed for %s/%s: %v", item.Source, item.Id, err)
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,11 @@ func (env *Env) doAction(writer http.ResponseWriter, req *http.Request) {
|
|||||||
log.Fatalf("error: failed to load state for %s: %v", source, err)
|
log.Fatalf("error: failed to load state for %s: %v", source, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
envs, err := core.GetEnvs(env.db, source)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("error: failed to get envs for %s: %v", source, err)
|
||||||
|
}
|
||||||
|
|
||||||
item, err := core.GetItem(env.db, source, id)
|
item, err := core.GetItem(env.db, source, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(writer, err.Error(), 500)
|
http.Error(writer, err.Error(), 500)
|
||||||
@ -66,7 +71,7 @@ func (env *Env) doAction(writer http.ResponseWriter, req *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
newItem, newState, err := core.ExecuteItemAction(item, argv, nil, state, time.Minute)
|
newItem, newState, err := core.ExecuteItemAction(item, argv, envs, state, time.Minute)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(writer, err.Error(), 500)
|
http.Error(writer, err.Error(), 500)
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user