mirror of https://github.com/milvus-io/milvus.git
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package console
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
func ExitWithOption(opts ...ExitOption) {
|
|
c := defaultExitConfig()
|
|
c.apply(opts...)
|
|
if c.abnormal {
|
|
Error(c.msg)
|
|
} else {
|
|
Success(c.msg)
|
|
}
|
|
c.runBeforeExit()
|
|
os.Exit(c.code)
|
|
}
|
|
|
|
func AbnormalExit(backupFinished bool, msg string, options ...ExitOption) {
|
|
opts := append([]ExitOption{}, options...)
|
|
opts = append(opts, WithAbnormalExit())
|
|
opts = append(opts, WithMsg(msg))
|
|
if backupFinished {
|
|
opts = append(opts, WithExitCode(FailButBackupFinished))
|
|
} else {
|
|
opts = append(opts, WithExitCode(FailWithBackupUnfinished))
|
|
}
|
|
ExitWithOption(opts...)
|
|
}
|
|
|
|
func AbnormalExitIf(err error, backupFinished bool, options ...ExitOption) {
|
|
if err != nil {
|
|
AbnormalExit(backupFinished, err.Error(), options...)
|
|
}
|
|
}
|
|
|
|
func NormalExit(msg string, options ...ExitOption) {
|
|
opts := append([]ExitOption{}, options...)
|
|
opts = append(opts, WithExitCode(NormalCode), WithMsg(msg))
|
|
ExitWithOption(opts...)
|
|
}
|
|
|
|
func NormalExitIf(success bool, msg string, options ...ExitOption) {
|
|
if success {
|
|
NormalExit(msg, options...)
|
|
}
|
|
}
|