mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
Don't swallow error raised from file exists helper method (#1019)
* Don't swallow error raised from file exists helper method * streamline
This commit is contained in:
parent
3f3db13a8a
commit
9cd4950437
@ -55,10 +55,18 @@ func generateConfig() error {
|
||||
}
|
||||
|
||||
var customConfig io.ReadCloser
|
||||
if piperutils.FileExists(GeneralConfig.CustomConfig) {
|
||||
customConfig, err = configOptions.openFile(GeneralConfig.CustomConfig)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "config: open failed")
|
||||
{
|
||||
exists, e := piperutils.FileExists(GeneralConfig.CustomConfig)
|
||||
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
|
||||
if exists {
|
||||
customConfig, err = configOptions.openFile(GeneralConfig.CustomConfig)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "config: open failed")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
23
cmd/piper.go
23
cmd/piper.go
@ -83,15 +83,22 @@ func PrepareConfig(cmd *cobra.Command, metadata *config.StepData, stepName strin
|
||||
var customConfig io.ReadCloser
|
||||
var err error
|
||||
//accept that config file and defaults cannot be loaded since both are not mandatory here
|
||||
if piperutils.FileExists(GeneralConfig.CustomConfig) {
|
||||
if customConfig, err = openFile(GeneralConfig.CustomConfig); err != nil {
|
||||
errors.Wrapf(err, "Cannot read '%s'", GeneralConfig.CustomConfig)
|
||||
}
|
||||
} else {
|
||||
log.Entry().Infof("Project config file '%s' does not exist. No project configuration available.", GeneralConfig.CustomConfig)
|
||||
customConfig = nil
|
||||
}
|
||||
{
|
||||
exists, e := piperutils.FileExists(GeneralConfig.CustomConfig)
|
||||
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
|
||||
if exists {
|
||||
if customConfig, err = openFile(GeneralConfig.CustomConfig); err != nil {
|
||||
errors.Wrapf(err, "Cannot read '%s'", GeneralConfig.CustomConfig)
|
||||
}
|
||||
} else {
|
||||
log.Entry().Infof("Project config file '%s' does not exist. No project configuration available.", GeneralConfig.CustomConfig)
|
||||
customConfig = nil
|
||||
}
|
||||
}
|
||||
var defaultConfig []io.ReadCloser
|
||||
for _, f := range GeneralConfig.DefaultConfig {
|
||||
//ToDo: support also https as source
|
||||
|
@ -113,7 +113,7 @@ func xsDeploy(XsDeployOptions xsDeployOptions) error {
|
||||
}
|
||||
|
||||
func runXsDeploy(XsDeployOptions xsDeployOptions, s shellRunner,
|
||||
fExists func(string) bool,
|
||||
fExists func(string) (bool, error),
|
||||
fCopy func(string, string) (int64, error),
|
||||
fRemove func(string) error,
|
||||
stdout io.Writer) error {
|
||||
@ -143,8 +143,14 @@ func runXsDeploy(XsDeployOptions xsDeployOptions, s shellRunner,
|
||||
performLogout := mode == Deploy || (mode == BGDeploy && action != None)
|
||||
log.Entry().Debugf("performLogin: %t, performLogout: %t", performLogin, performLogout)
|
||||
|
||||
if action == None && !fExists(XsDeployOptions.MtaPath) {
|
||||
return errors.New(fmt.Sprintf("Deployable '%s' does not exist", XsDeployOptions.MtaPath))
|
||||
{
|
||||
exists, e := fExists(XsDeployOptions.MtaPath)
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
if action == None && !exists {
|
||||
return errors.New(fmt.Sprintf("Deployable '%s' does not exist", XsDeployOptions.MtaPath))
|
||||
}
|
||||
}
|
||||
|
||||
if action != None && len(XsDeployOptions.OperationID) == 0 {
|
||||
@ -194,8 +200,14 @@ func runXsDeploy(XsDeployOptions xsDeployOptions, s shellRunner,
|
||||
|
||||
if loginErr == nil && err == nil {
|
||||
|
||||
if !fExists(xsSessionFile) {
|
||||
return fmt.Errorf("xs session file does not exist (%s)", xsSessionFile)
|
||||
{
|
||||
exists, e := fExists(xsSessionFile)
|
||||
if e != nil {
|
||||
return e
|
||||
}
|
||||
if !exists {
|
||||
return fmt.Errorf("xs session file does not exist (%s)", xsSessionFile)
|
||||
}
|
||||
}
|
||||
|
||||
copyFileFromPwdToHome(xsSessionFile, fCopy)
|
||||
|
@ -33,8 +33,8 @@ func TestDeploy(t *testing.T) {
|
||||
var copiedFiles []string
|
||||
var removedFiles []string
|
||||
|
||||
fExists := func(path string) bool {
|
||||
return path == "dummy.mtar" || path == ".xs_session"
|
||||
fExists := func(path string) (bool, error) {
|
||||
return path == "dummy.mtar" || path == ".xs_session", nil
|
||||
}
|
||||
|
||||
fCopy := func(src, dest string) (int64, error) {
|
||||
|
@ -167,7 +167,6 @@ func (c *Config) GetStepConfig(flagValues map[string]interface{}, paramJSON stri
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return stepConfig, nil
|
||||
}
|
||||
|
||||
|
@ -7,18 +7,29 @@ import (
|
||||
)
|
||||
|
||||
// FileExists ...
|
||||
func FileExists(filename string) bool {
|
||||
func FileExists(filename string) (bool, error) {
|
||||
info, err := os.Stat(filename)
|
||||
|
||||
if os.IsNotExist(err) {
|
||||
return false
|
||||
return false, nil
|
||||
}
|
||||
return !info.IsDir()
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
return !info.IsDir(), nil
|
||||
}
|
||||
|
||||
// Copy ...
|
||||
func Copy(src, dst string) (int64, error) {
|
||||
|
||||
if !FileExists(src) {
|
||||
exists, err := FileExists(src)
|
||||
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if !exists {
|
||||
return 0, errors.New("Source file '" + src + "' does not exist")
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user