1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/pkg/abap/aakaas/aakUtils.go

67 lines
1.7 KiB
Go

package aakaas
import (
"time"
abapbuild "github.com/SAP/jenkins-library/pkg/abap/build"
"github.com/SAP/jenkins-library/pkg/abaputils"
"github.com/SAP/jenkins-library/pkg/command"
piperhttp "github.com/SAP/jenkins-library/pkg/http"
"github.com/SAP/jenkins-library/pkg/log"
"github.com/SAP/jenkins-library/pkg/piperutils"
)
type AakUtils interface {
command.ExecRunner
abapbuild.HTTPSendLoader
piperutils.FileUtils
ReadAddonDescriptor(FileName string) (abaputils.AddonDescriptor, error)
GetMaxRuntime() time.Duration
GetPollingInterval() time.Duration
}
type AakBundle struct {
*command.Command
*piperhttp.Client
*piperutils.Files
maxRuntime time.Duration
pollingInterval time.Duration
}
func (bundle *AakBundle) GetMaxRuntime() time.Duration {
return bundle.maxRuntime
}
func (bundle *AakBundle) GetPollingInterval() time.Duration {
return bundle.pollingInterval
}
func (bundle *AakBundle) ReadAddonDescriptor(FileName string) (abaputils.AddonDescriptor, error) {
return abaputils.ReadAddonDescriptor(FileName)
}
func NewAakBundleWithTime(maxRuntime time.Duration, pollingInterval time.Duration) AakUtils {
utils := AakBundle{
Command: &command.Command{},
Client: &piperhttp.Client{},
maxRuntime: maxRuntime * time.Minute,
pollingInterval: pollingInterval * time.Second,
}
// Reroute command output to logging framework
utils.Stdout(log.Writer())
utils.Stderr(log.Writer())
return &utils
}
func NewAakBundle() AakUtils {
utils := AakBundle{
Command: &command.Command{},
Client: &piperhttp.Client{},
Files: &piperutils.Files{},
}
// Reroute command output to logging framework
utils.Stdout(log.Writer())
utils.Stderr(log.Writer())
return &utils
}