diff --git a/cmd/init.go b/cmd/init.go index d18fbb9..b08689a 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -43,9 +43,7 @@ Init will not use an existing directory with contents.`, default: log.Fatal("init command does not support more than 1 parameter") } - if err != nil { - log.WithFields(log.Fields{"error": err}).Fatal("Given path is invalid") - } + helpers.Check(err, "Given path is invalid") initializePath(path) }, @@ -53,14 +51,11 @@ Init will not use an existing directory with contents.`, func initializePath(path string) { b, err := helpers.Exists(path) - if err != nil { - log.WithFields(log.Fields{"error": err}).Fatal("Error while checking file") - } + helpers.Check(err, "Error while checking file") + if !b { err := os.MkdirAll(path, os.ModePerm) - if err != nil { - log.WithFields(log.Fields{"error": err}).Fatal("Could not create directory") - } + helpers.Check(err, "Could not create directory") } // createSettings() diff --git a/helpers/error_utils.go b/helpers/error_utils.go new file mode 100644 index 0000000..fc6a820 --- /dev/null +++ b/helpers/error_utils.go @@ -0,0 +1,31 @@ +// Copyright © 2016 Jip J. Dekker +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package helpers + +import log "github.com/Sirupsen/logrus" + +// Crash outputs it's arguments to the log and stops the program +func Crash(err error, msg string) { + log.WithFields(log.Fields{ + "error": err, + }).Fatal(msg) +} + +// Check calls Crash if the error is not nil +func Check(err error, msg string) { + if err != nil { + Crash(err, msg) + } +}