print.go 2.2 KB
Newer Older
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
1 2 3 4
package logUtils

import (
	"fmt"
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
5
	commonUtils "github.com/easysoft/zendata/src/utils/common"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6
	constant "github.com/easysoft/zendata/src/utils/const"
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
7
	fileUtils "github.com/easysoft/zendata/src/utils/file"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
8
	"github.com/easysoft/zendata/src/utils/vari"
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
9
	"github.com/fatih/color"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
10
	"net/http"
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
11 12 13 14 15 16
	"os"
	"regexp"
	"strings"
)

var (
aaronchen2k2k's avatar
aaronchen2k2k 已提交
17 18
	exampleFile  = fmt.Sprintf("res%sen%ssample.yaml", string(os.PathSeparator), string(os.PathSeparator))
	usageFile  = fmt.Sprintf("res%sen%susage.txt", string(os.PathSeparator), string(os.PathSeparator))
aaronchen2k2k's avatar
aaronchen2k2k 已提交
19 20 21

	FileWriter *os.File
	HttpWriter http.ResponseWriter
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
22 23
)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
24
func PrintExample() {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
25 26 27
	if vari.Config.Language == "zh" {
		exampleFile = strings.Replace(exampleFile, "en", "zh", 1)
		usageFile = strings.Replace(usageFile, "en", "zh", 1)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
28 29
	}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
30 31 32 33
	content := fileUtils.ReadResData(exampleFile)
	fmt.Printf("%s\n", content)
}

aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
34
func PrintUsage() {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
35 36 37
	if vari.Config.Language == "zh" {
		exampleFile = strings.Replace(exampleFile, "en", "zh", 1)
		usageFile = strings.Replace(usageFile, "en", "zh", 1)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
38
	}
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
39 40

	usage := fileUtils.ReadResData(usageFile)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
41
	exeFile := "zd"
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
42 43 44
	if commonUtils.IsWin() {
		exeFile += ".exe"
	}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
45

aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
46 47
	if !commonUtils.IsWin() {
		regx, _ := regexp.Compile(`\\`)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
48
		usage = regx.ReplaceAllString(usage, "/")
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
49

aaronchen2k2k's avatar
aaronchen2k2k 已提交
50 51
		regx, _ = regexp.Compile(`zd.exe`)
		usage = regx.ReplaceAllString(usage, "zd")
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
52

aaronchen2k2k's avatar
aaronchen2k2k 已提交
53 54
		regx, _ = regexp.Compile(`d:/zd/config        `)
		usage = regx.ReplaceAllString(usage, "/home/user/zd/config")
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
55
	}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
56
	fmt.Printf("%s\n", usage)
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
57 58 59 60 61 62
}

func PrintTo(str string) {
	output := color.Output
	fmt.Fprint(output, str+"\n")
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
63 64 65 66
func PrintToWithoutNewLine(str string) {
	output := color.Output
	fmt.Fprint(output, str)
}
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
67 68 69 70 71 72 73 74 75 76

func PrintToWithColor(msg string, attr color.Attribute) {
	output := color.Output

	if attr == -1 {
		fmt.Fprint(output, msg+"\n")
	} else {
		color.New(attr).Fprintf(output, msg+"\n")
	}
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

func PrintErrMsg(msg string) {
	PrintToWithColor(msg, color.FgCyan)
}

func PrintLine(line string) {
	if FileWriter != nil {
		PrintToFile(line)
	} else if vari.RunMode == constant.RunModeServerRequest {
		PrintToHttp(line)
	} else {
		PrintToScreen(line)
	}
}
func PrintToFile(line string) {
	fmt.Fprintln(FileWriter, line)
}
func PrintToHttp(line string) {
	fmt.Fprintln(HttpWriter, line)
}
func PrintToScreen(line string) {
	fmt.Println(line)
}