diff options
Diffstat (limited to 'vendor/github.com/Unknwon/com/cmd.go')
-rw-r--r-- | vendor/github.com/Unknwon/com/cmd.go | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/vendor/github.com/Unknwon/com/cmd.go b/vendor/github.com/Unknwon/com/cmd.go deleted file mode 100644 index dc7086d8..00000000 --- a/vendor/github.com/Unknwon/com/cmd.go +++ /dev/null @@ -1,161 +0,0 @@ -// +build go1.2 - -// Copyright 2013 com authors -// -// 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 com is an open source project for commonly used functions for the Go programming language. -package com - -import ( - "bytes" - "fmt" - "os/exec" - "runtime" - "strings" -) - -// ExecCmdDirBytes executes system command in given directory -// and return stdout, stderr in bytes type, along with possible error. -func ExecCmdDirBytes(dir, cmdName string, args ...string) ([]byte, []byte, error) { - bufOut := new(bytes.Buffer) - bufErr := new(bytes.Buffer) - - cmd := exec.Command(cmdName, args...) - cmd.Dir = dir - cmd.Stdout = bufOut - cmd.Stderr = bufErr - - err := cmd.Run() - return bufOut.Bytes(), bufErr.Bytes(), err -} - -// ExecCmdBytes executes system command -// and return stdout, stderr in bytes type, along with possible error. -func ExecCmdBytes(cmdName string, args ...string) ([]byte, []byte, error) { - return ExecCmdDirBytes("", cmdName, args...) -} - -// ExecCmdDir executes system command in given directory -// and return stdout, stderr in string type, along with possible error. -func ExecCmdDir(dir, cmdName string, args ...string) (string, string, error) { - bufOut, bufErr, err := ExecCmdDirBytes(dir, cmdName, args...) - return string(bufOut), string(bufErr), err -} - -// ExecCmd executes system command -// and return stdout, stderr in string type, along with possible error. -func ExecCmd(cmdName string, args ...string) (string, string, error) { - return ExecCmdDir("", cmdName, args...) -} - -// _________ .__ .____ -// \_ ___ \ ____ | | ___________ | | ____ ____ -// / \ \/ / _ \| | / _ \_ __ \ | | / _ \ / ___\ -// \ \___( <_> ) |_( <_> ) | \/ | |__( <_> ) /_/ > -// \______ /\____/|____/\____/|__| |_______ \____/\___ / -// \/ \/ /_____/ - -// Color number constants. -const ( - Gray = uint8(iota + 90) - Red - Green - Yellow - Blue - Magenta - //NRed = uint8(31) // Normal - EndColor = "\033[0m" -) - -// getColorLevel returns colored level string by given level. -func getColorLevel(level string) string { - level = strings.ToUpper(level) - switch level { - case "TRAC": - return fmt.Sprintf("\033[%dm%s\033[0m", Blue, level) - case "ERRO": - return fmt.Sprintf("\033[%dm%s\033[0m", Red, level) - case "WARN": - return fmt.Sprintf("\033[%dm%s\033[0m", Magenta, level) - case "SUCC": - return fmt.Sprintf("\033[%dm%s\033[0m", Green, level) - default: - return level - } -} - -// ColorLogS colors log and return colored content. -// Log format: <level> <content [highlight][path]> [ error ]. -// Level: TRAC -> blue; ERRO -> red; WARN -> Magenta; SUCC -> green; others -> default. -// Content: default; path: yellow; error -> red. -// Level has to be surrounded by "[" and "]". -// Highlights have to be surrounded by "# " and " #"(space), "#" will be deleted. -// Paths have to be surrounded by "( " and " )"(space). -// Errors have to be surrounded by "[ " and " ]"(space). -// Note: it hasn't support windows yet, contribute is welcome. -func ColorLogS(format string, a ...interface{}) string { - log := fmt.Sprintf(format, a...) - - var clog string - - if runtime.GOOS != "windows" { - // Level. - i := strings.Index(log, "]") - if log[0] == '[' && i > -1 { - clog += "[" + getColorLevel(log[1:i]) + "]" - } - - log = log[i+1:] - - // Error. - log = strings.Replace(log, "[ ", fmt.Sprintf("[\033[%dm", Red), -1) - log = strings.Replace(log, " ]", EndColor+"]", -1) - - // Path. - log = strings.Replace(log, "( ", fmt.Sprintf("(\033[%dm", Yellow), -1) - log = strings.Replace(log, " )", EndColor+")", -1) - - // Highlights. - log = strings.Replace(log, "# ", fmt.Sprintf("\033[%dm", Gray), -1) - log = strings.Replace(log, " #", EndColor, -1) - - } else { - // Level. - i := strings.Index(log, "]") - if log[0] == '[' && i > -1 { - clog += "[" + log[1:i] + "]" - } - - log = log[i+1:] - - // Error. - log = strings.Replace(log, "[ ", "[", -1) - log = strings.Replace(log, " ]", "]", -1) - - // Path. - log = strings.Replace(log, "( ", "(", -1) - log = strings.Replace(log, " )", ")", -1) - - // Highlights. - log = strings.Replace(log, "# ", "", -1) - log = strings.Replace(log, " #", "", -1) - } - return clog + log -} - -// ColorLog prints colored log to stdout. -// See color rules in function 'ColorLogS'. -func ColorLog(format string, a ...interface{}) { - fmt.Print(ColorLogS(format, a...)) -} |