38 lines
893 B
Go
38 lines
893 B
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/spf13/cobra"
|
|
flag "github.com/spf13/pflag"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
func MustFlagsDateTime(cmd *cobra.Command, key string) time.Time {
|
|
t, err := ParseFlagsDateTime(cmd.Flags(), key)
|
|
cobra.CheckErr(err)
|
|
return *t
|
|
}
|
|
|
|
func ParseFlagsDateTime(set *flag.FlagSet, key string) (*time.Time, error) {
|
|
val, err := set.GetString(key)
|
|
|
|
if err != nil {
|
|
return nil, fmt.Errorf("获取参数异常:%w", err)
|
|
}
|
|
beginTime, err := time.ParseInLocation("2006-01-02 15:04:05", val, time.Local)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("不是有效的时间格式:%w", err)
|
|
}
|
|
return &beginTime, nil
|
|
}
|
|
|
|
func CmdOutput(cmd *cobra.Command, format string, opts ...interface{}) {
|
|
fmt.Fprintf(cmd.OutOrStdout(), format, opts...)
|
|
}
|
|
|
|
func CmdError(cmd *cobra.Command, format string, opts ...interface{}) {
|
|
fmt.Fprintf(cmd.OutOrStderr(), format, opts...)
|
|
os.Exit(1)
|
|
}
|