Fix: return error instead of os.Exit when something goes wrong

This commit is contained in:
sanposhiho 2021-08-22 19:20:47 +09:00
parent 3a26b864f4
commit b8ae016ee6
2 changed files with 15 additions and 6 deletions

View File

@ -79,15 +79,14 @@ suitable Node. Multiple different schedulers may be used within a cluster;
kube-scheduler is the reference implementation.
See [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/)
for more information about scheduling and the kube-scheduler component.`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
if err := opts.Complete(&namedFlagSets); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
return fmt.Errorf("completes the remaining instantiation of the options: %w", err)
}
if err := runCommand(cmd, opts, registryOptions...); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
return fmt.Errorf("run command: %w", err)
}
return nil
},
Args: func(cmd *cobra.Command, args []string) error {
for _, arg := range args {

View File

@ -17,6 +17,7 @@ limitations under the License.
package main
import (
"fmt"
"math/rand"
"os"
"time"
@ -32,6 +33,13 @@ import (
)
func main() {
if err := runSchedulerCmd(); err != nil {
fmt.Fprintf(os.Stderr, "failed to run scheduler command: %v\n", err)
os.Exit(1)
}
}
func runSchedulerCmd() error {
rand.Seed(time.Now().UnixNano())
pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
@ -42,6 +50,8 @@ func main() {
defer logs.FlushLogs()
if err := command.Execute(); err != nil {
os.Exit(1)
return fmt.Errorf("execute command: %w", err)
}
return nil
}