resp.go
package util
import (
"encoding/json"
"fmt"
"log"
)
// RespMsg : http响应数据的通用结构
type RespMsg struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
}
// NewRespMsg : 生成response对象
func NewRespMsg(code int, msg string, data interface{}) *RespMsg {
return &RespMsg{
Code: code,
Msg: msg,
Data: data,
}
}
// JSONBytes : 对象转json格式的二进制数组
func (resp *RespMsg) JSONBytes() []byte {
r, err := json.Marshal(resp)
if err != nil {
log.Println(err)
}
return r
}
// JSONString : 对象转json格式的string
func (resp *RespMsg) JSONString() string {
r, err := json.Marshal(resp)
if err != nil {
log.Println(err)
}
return string(r)
}
// GenSimpleRespStream : 只包含code和message的响应体([]byte)
func GenSimpleRespStream(code int, msg string) []byte {
return []byte(fmt.Sprintf(`{"code":%d,"msg":"%s"}`, code, msg))
}
// GenSimpleRespString : 只包含code和message的响应体(string)
func GenSimpleRespString(code int, msg string) string {
return fmt.Sprintf(`{"code":%d,"msg":"%s"}`, code, msg)
}
shell.go
package util
import (
"bytes"
"os/exec"
)
// 执行 linux shell command
func ExecLinuxShell(s string) (string, error) {
//函数返回一个io.Writer类型的*Cmd
cmd := exec.Command("/bin/bash", "-c", s)
//通过bytes.Buffer将byte类型转化为string类型
var result bytes.Buffer
cmd.Stdout = &result
//Run执行cmd包含的命令,并阻塞直至完成
err := cmd.Run()
if err != nil {
return "", err
}
return result.String(), err
}
util.go
package util
import (
"bytes"
"os/exec"
)
// 执行 linux shell command
func ExecLinuxShell(s string) (string, error) {
//函数返回一个io.Writer类型的*Cmd
cmd := exec.Command("/bin/bash", "-c", s)
//通过bytes.Buffer将byte类型转化为string类型
var result bytes.Buffer
cmd.Stdout = &result
//Run执行cmd包含的命令,并阻塞直至完成
err := cmd.Run()
if err != nil {
return "", err
}
return result.String(), err
}