com: github.com/NicholeGit/com Index | Examples | Files

package com

import "github.com/NicholeGit/com"

Package com is an open source project for commonly used functions for the Go programming language.

Index

Examples

Package Files

cmd.go convert.go dir.go file.go html.go http.go math.go path.go regex.go slice.go string.go time.go url.go

Constants

const (
    Gray = uint8(iota + 90)
    Red
    Green
    Yellow
    Blue
    Magenta
    //NRed      = uint8(31) // Normal
    EndColor = "\033[0m"
)

Color number constants.

const (
    Byte  = 1
    KByte = Byte * 1024
    MByte = KByte * 1024
    GByte = MByte * 1024
    TByte = GByte * 1024
    PByte = TByte * 1024
    EByte = PByte * 1024
)

Storage unit constants.

Variables

var UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1541.0 Safari/537.36"

func AppendStr Uses

func AppendStr(strs []string, str string) []string

AppendStr appends string to slice with no duplicates.

Code:

s := []string{"a"}
s = com.AppendStr(s, "a")
s = com.AppendStr(s, "b")
fmt.Println(s)

Output:

[a b]

func Base64Decode Uses

func Base64Decode(str string) (string, error)

base64 decode

func Base64Encode Uses

func Base64Encode(str string) string

base64 encode

func ColorLog Uses

func ColorLog(format string, a ...interface{})

ColorLog prints colored log to stdout. See color rules in function 'ColorLogS'.

Code:

com.ColorLog(fmt.Sprintf(
    "[WARN] This is a tesing log that should be colored, path( %s ),"+
        " highlight # %s #, error [ %s ].",
    "path to somewhere", "highlighted content", "tesing error"))

func ColorLogS Uses

func ColorLogS(format string, a ...interface{}) string

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.

Code:

coloredLog := com.ColorLogS(fmt.Sprintf(
    "[WARN] This is a tesing log that should be colored, path( %s ),"+
        " highlight # %s #, error [ %s ].",
    "path to somewhere", "highlighted content", "tesing error"))
fmt.Println(coloredLog)

func CompareSliceStr Uses

func CompareSliceStr(s1, s2 []string) bool

CompareSliceStr compares two 'string' type slices. It returns true if elements and order are both the same.

func CompareSliceStrU Uses

func CompareSliceStrU(s1, s2 []string) bool

CompareSliceStr compares two 'string' type slices. It returns true if elements are the same, and ignores the order.

func Copy Uses

func Copy(src, dest string) error

Copy copies file from source to target path.

func CopyDir Uses

func CopyDir(srcPath, destPath string, filters ...func(filePath string) bool) error

CopyDir copy files recursively from source to target directory.

The filter accepts a function that process the path info. and should return true for need to filter.

It returns error when error occurs in underlying functions.

func Date Uses

func Date(ti int64, format string) string

Format unix time int64 to string

func DateParse Uses

func DateParse(dateString, format string) (time.Time, error)

Parse Date use PHP time format.

func DateS Uses

func DateS(ts string, format string) string

Format unix time string to string

func DateT Uses

func DateT(t time.Time, format string) string

Format time.Time struct to string MM - month - 01 M - month - 1, single bit DD - day - 02 D - day 2 YYYY - year - 2006 YY - year - 06 HH - 24 hours - 03 H - 24 hours - 3 hh - 12 hours - 03 h - 12 hours - 3 mm - minute - 04 m - minute - 4 ss - second - 05 s - second = 5

func ExecCmd Uses

func ExecCmd(cmdName string, args ...string) (string, string, error)

ExecCmd executes system command and return stdout, stderr in string type, along with possible error.

Code:

stdout, stderr, err := com.ExecCmd("go", "help", "get")
fmt.Println(stdout, stderr, err)

func ExecCmdBytes Uses

func ExecCmdBytes(cmdName string, args ...string) ([]byte, []byte, error)

ExecCmdBytes executes system command and return stdout, stderr in bytes type, along with possible error.

func ExecCmdDir Uses

func ExecCmdDir(dir, cmdName string, args ...string) (string, string, error)

ExecCmdDir executes system command in given directory and return stdout, stderr in string type, along with possible error.

func ExecCmdDirBytes Uses

func ExecCmdDirBytes(dir, cmdName string, args ...string) ([]byte, []byte, error)

ExecCmdDirBytes executes system command in given directory and return stdout, stderr in bytes type, along with possible error.

func Expand Uses

func Expand(template string, match map[string]string, subs ...string) string

Expand replaces {k} in template with match[k] or subs[atoi(k)] if k is not in match.

Code:

match := map[string]string{
    "domain":    "gowalker.org",
    "subdomain": "github.com",
}
s := "http://{domain}/{subdomain}/{0}/{1}"
fmt.Println(com.Expand(s, match, "Unknwon", "gowalker"))

Output:

http://gowalker.org/github.com/Unknwon/gowalker

func FetchFiles Uses

func FetchFiles(client *http.Client, files []RawFile, header http.Header) error

FetchFiles fetches files specified by the rawURL field in parallel.

Code:

// Code that should be outside of your function body.
// type rawFile struct {
// name   string
// 	rawURL string
// 	data   []byte
// }

// func (rf *rawFile) Name() string {
// 	return rf.name
// }

// func (rf *rawFile) RawUrl() string {
// 	return rf.rawURL
// }

// func (rf *rawFile) Data() []byte {
// 	return rf.data
// }

// func (rf *rawFile) SetData(p []byte) {
// 	rf.data = p
// }

files := []com.RawFile{
    &rawFile{rawURL: "http://example.com"},
    &rawFile{rawURL: "http://example.com/foo"},
}
err := com.FetchFiles(&http.Client{}, files, nil)
fmt.Println(err, len(files[0].Data()), len(files[1].Data()))

func FetchFilesCurl Uses

func FetchFilesCurl(files []RawFile, curlOptions ...string) error

FetchFiles uses command `curl` to fetch files specified by the rawURL field in parallel.

Code:

// Code that should be outside of your function body.
// type rawFile struct {
// name   string
// 	rawURL string
// 	data   []byte
// }

// func (rf *rawFile) Name() string {
// 	return rf.name
// }

// func (rf *rawFile) RawUrl() string {
// 	return rf.rawURL
// }

// func (rf *rawFile) Data() []byte {
// 	return rf.data
// }

// func (rf *rawFile) SetData(p []byte) {
// 	rf.data = p
// }

files := []com.RawFile{
    &rawFile{rawURL: "http://example.com"},
    &rawFile{rawURL: "http://example.com/foo"},
}
err := com.FetchFilesCurl(files)
fmt.Println(err, len(files[0].Data()), len(files[1].Data()))

func FileMTime Uses

func FileMTime(file string) (int64, error)

FileMTime returns file modified time and possible error.

func FileSize Uses

func FileSize(file string) (int64, error)

FileSize returns file size in bytes and possible error.

func GetAllSubDirs Uses

func GetAllSubDirs(rootPath string) ([]string, error)

GetAllSubDirs returns all subdirectories of given root path. Slice does not include given path itself.

func GetGOPATHs Uses

func GetGOPATHs() []string

GetGOPATHs returns all paths in GOPATH variable.

Code:

gps := com.GetGOPATHs()
fmt.Println(gps)

func GetSrcPath Uses

func GetSrcPath(importPath string) (appPath string, err error)

GetSrcPath returns app. source code path. It only works when you have src. folder in GOPATH, it returns error not able to locate source folder path.

Code:

srcPath, err := com.GetSrcPath("github.com/Unknwon/com")
if err != nil {
    fmt.Println(err)
    return
}
fmt.Println(srcPath)

func HexStr2int Uses

func HexStr2int(hexStr string) (int, error)

HexStr2int converts hex format string to decimal number.

func HomeDir Uses

func HomeDir() (home string, err error)

HomeDir returns path of '~'(in Linux) on Windows, it returns error when the variable does not exist.

Code:

hd, err := com.HomeDir()
fmt.Println(hd, err)

func Html2JS Uses

func Html2JS(data []byte) []byte

Html2JS converts []byte type of HTML content into JS format.

Code:

htm := "<div id=\"button\" class=\"btn\">Click me</div>\n\r"
js := string(com.Html2JS([]byte(htm)))
fmt.Println(js)

Output:

<div id=\"button\" class=\"btn\">Click me</div>\n

func HtmlDecode Uses

func HtmlDecode(str string) string

decode string to html chars

func HtmlEncode Uses

func HtmlEncode(str string) string

encode html chars to string

func HttpGet Uses

func HttpGet(client *http.Client, url string, header http.Header) (io.ReadCloser, error)

HttpGet gets the specified resource. ErrNotFound is returned if the server responds with status 404.

Code:

rc, err := com.HttpGet(&http.Client{}, "http://gowalker.org", nil)
if err != nil {
    return nil, err
}
p, err := ioutil.ReadAll(rc)
rc.Close()
return p, err

func HttpGetBytes Uses

func HttpGetBytes(client *http.Client, url string, header http.Header) ([]byte, error)

HttpGetBytes gets the specified resource. ErrNotFound is returned if the server responds with status 404.

Code:

p, err := com.HttpGetBytes(&http.Client{}, "http://gowalker.org", nil)
return p, err

func HttpGetJSON Uses

func HttpGetJSON(client *http.Client, url string, v interface{}) error

HttpGetJSON gets the specified resource and mapping to struct. ErrNotFound is returned if the server responds with status 404.

Code:

j := com.HttpGetJSON(&http.Client{}, "http://gowalker.org", nil)
return j

func HttpGetToFile Uses

func HttpGetToFile(client *http.Client, url string, header http.Header, fileName string) error

HttpGetToFile gets the specified resource and writes to file. ErrNotFound is returned if the server responds with status 404.

func HumaneFileSize Uses

func HumaneFileSize(s uint64) string

HumaneFileSize calculates the file size and generate user-friendly string.

func Int2HexStr Uses

func Int2HexStr(num int) (hex string)

Int2HexStr converts decimal number to hex format string.

func IsDir Uses

func IsDir(dir string) bool

IsDir returns true if given path is a directory, or returns false when it's a file or does not exist.

Code:

if com.IsDir("files") {
    fmt.Println("directory 'files' exists")
    return
}
fmt.Println("'files' is not a directory or does not exist")

func IsEmail Uses

func IsEmail(email string) bool

validate string is an email address, if not return false basically validation can match 99% cases

Code:

fmt.Println(com.IsEmail("test@example.com"))
fmt.Println(com.IsEmail("@example.com"))

Output:

true
false

func IsEmailRFC Uses

func IsEmailRFC(email string) bool

validate string is an email address, if not return false this validation omits RFC 2822

func IsExist Uses

func IsExist(path string) bool

IsExist checks whether a file or directory exists. It returns false when the file or directory does not exist.

Code:

if com.IsExist("file.go") {
    fmt.Println("file.go exists")
    return
}
fmt.Println("file.go does not exist")

func IsFile Uses

func IsFile(filePath string) bool

IsFile returns true if given path is a file, or returns false when it's a directory or does not exist.

Code:

if com.IsFile("file.go") {
    fmt.Println("file.go exists")
    return
}
fmt.Println("file.go is not a file or does not exist")

func IsLetter Uses

func IsLetter(l uint8) bool

IsLetter returns true if the 'l' is an English letter.

Code:

fmt.Println(com.IsLetter('1'))
fmt.Println(com.IsLetter('['))
fmt.Println(com.IsLetter('a'))
fmt.Println(com.IsLetter('Z'))

Output:

false
false
true
true

func IsSliceContainsInt64 Uses

func IsSliceContainsInt64(sl []int64, i int64) bool

IsSliceContainsInt64 returns true if the int64 exists in given slice.

func IsSliceContainsStr Uses

func IsSliceContainsStr(sl []string, str string) bool

IsSliceContainsStr returns true if the string exists in given slice, ignore case.

func IsUrl Uses

func IsUrl(url string) bool

validate string is a url link, if not return false simple validation can match 99% cases

Code:

fmt.Println(com.IsUrl("http://example.com"))
fmt.Println(com.IsUrl("http//example.com"))

Output:

true
false

func Ltrim Uses

func Ltrim(str string) string

trim space on left

func Nl2br Uses

func Nl2br(str string) string

change \n to <br/>

func PowInt Uses

func PowInt(x int, y int) int

PowInt is int type of math.Pow function.

func RandomCreateBytes Uses

func RandomCreateBytes(n int, alphabets ...byte) []byte

RandomCreateBytes generate random []byte by specify chars.

func Reverse Uses

func Reverse(s string) string

Reverse s string, support unicode

func Rtrim Uses

func Rtrim(str string) string

trim space on right

func Sha1 Uses

func Sha1(str string) string

sha1 hash string

func Sha256 Uses

func Sha256(str string) string

sha256 hash string

func StatDir Uses

func StatDir(rootPath string, includeDir ...bool) ([]string, error)

StatDir gathers information of given directory by depth-first. It returns slice of file list and includes subdirectories if enabled; it returns error and nil slice when error occurs in underlying functions, or given path is not a directory or does not exist.

Slice does not include given path itself. If subdirectories is enabled, they will have suffix '/'.

func StrReplace Uses

func StrReplace(str string, find string, to string) string

replace find all occurs to string

func StripTags Uses

func StripTags(src string) string

strip tags in html string

func ToStr Uses

func ToStr(value interface{}, args ...int) (s string)

Convert any type to string.

func UrlDecode Uses

func UrlDecode(str string) (string, error)

url decode string

func UrlEncode Uses

func UrlEncode(str string) string

url encode string, is + not %20

func WriteFile Uses

func WriteFile(filename string, data []byte) error

WriteFile writes data to a file named by filename. If the file does not exist, WriteFile creates it and its upper level paths.

type NotFoundError Uses

type NotFoundError struct {
    Message string
}

func (NotFoundError) Error Uses

func (e NotFoundError) Error() string

type RawFile Uses

type RawFile interface {
    Name() string
    RawUrl() string
    Data() []byte
    SetData([]byte)
}

A RawFile describes a file that can be downloaded.

type RemoteError Uses

type RemoteError struct {
    Host string
    Err  error
}

func (*RemoteError) Error Uses

func (e *RemoteError) Error() string

type StrTo Uses

type StrTo string

Convert string to specify type.

func (StrTo) Exist Uses

func (f StrTo) Exist() bool

func (StrTo) Int Uses

func (f StrTo) Int() (int, error)

func (StrTo) Int64 Uses

func (f StrTo) Int64() (int64, error)

func (StrTo) MustInt Uses

func (f StrTo) MustInt() int

func (StrTo) MustInt64 Uses

func (f StrTo) MustInt64() int64

func (StrTo) MustUint8 Uses

func (f StrTo) MustUint8() uint8

func (StrTo) String Uses

func (f StrTo) String() string

func (StrTo) Uint8 Uses

func (f StrTo) Uint8() (uint8, error)

Package com imports 26 packages (graph). Updated 2017-07-17. Refresh now. Tools for package owners.