本文整理汇总了Golang中github.com/dotcloud/docker/term.GetWinsize函数的典型用法代码示例。如果您正苦于以下问题:Golang GetWinsize函数的具体用法?Golang GetWinsize怎么用?Golang GetWinsize使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetWinsize函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
go worker()
state, err := term.SetRawTerminal(os.Stdin.Fd())
if err != nil {
panic(err)
}
defer term.RestoreTerminal(os.Stdin.Fd(), state)
winsize, _ = term.GetWinsize(os.Stdin.Fd())
client, err := beam.NewClient(&beam.NetTransport{"tcp", ":6379"})
if err != nil {
panic(err)
}
defer client.Close()
job := createJob(client)
if err := job.Start(); err != nil {
panic(err)
}
if err := job.Wait(); err != nil {
panic(err)
}
}
开发者ID:pombredanne,项目名称:beam,代码行数:25,代码来源:tty.go
示例2: resizeTty
func (cli *DockerCli) resizeTty(id string) {
ws, err := term.GetWinsize(os.Stdin.Fd())
if err != nil {
utils.Debugf("Error getting size: %s", err)
}
v := url.Values{}
v.Set("h", strconv.Itoa(int(ws.Height)))
v.Set("w", strconv.Itoa(int(ws.Width)))
if _, _, err := cli.call("POST", "/containers/"+id+"/resize?"+v.Encode(), nil); err != nil {
utils.Debugf("Error resize: %s", err)
}
}
开发者ID:jweede,项目名称:docker,代码行数:12,代码来源:commands.go
示例3: getTtySize
func (cli *DockerCli) getTtySize() (int, int) {
if !cli.isTerminal {
return 0, 0
}
ws, err := term.GetWinsize(cli.terminalFd)
if err != nil {
utils.Debugf("Error getting size: %s", err)
if ws == nil {
return 0, 0
}
}
return int(ws.Height), int(ws.Width)
}
开发者ID:johnbellone,项目名称:docker,代码行数:13,代码来源:commands.go
示例4: getTtySize
func (client *Client) getTtySize() (h int, w int) {
if !client.isTerminal {
return 0, 0
}
ws, err := term.GetWinsize(client.terminalFd)
if err.(syscall.Errno) != 0 {
panic(fmt.Errorf("siphon: client error getting terminal size: %s\n", err))
}
if ws == nil {
return 0, 0
}
return int(ws.Height), int(ws.Width)
}
开发者ID:heavenlyhash,项目名称:siphon,代码行数:13,代码来源:client.go
示例5: String
func (p *JSONProgress) String() string {
var (
width = 200
pbBox string
numbersBox string
timeLeftBox string
)
ws, err := term.GetWinsize(p.terminalFd)
if err == nil {
width = int(ws.Width)
}
if p.Current <= 0 && p.Total <= 0 {
return ""
}
current := HumanSize(int64(p.Current))
if p.Total <= 0 {
return fmt.Sprintf("%8v", current)
}
total := HumanSize(int64(p.Total))
percentage := int(float64(p.Current)/float64(p.Total)*100) / 2
if width > 110 {
pbBox = fmt.Sprintf("[%s>%s] ", strings.Repeat("=", percentage), strings.Repeat(" ", 50-percentage))
}
numbersBox = fmt.Sprintf("%8v/%v", current, total)
if p.Start > 0 {
fromStart := time.Now().UTC().Sub(time.Unix(int64(p.Start), 0))
perEntry := fromStart / time.Duration(p.Current)
left := time.Duration(p.Total-p.Current) * perEntry
left = (left / time.Second) * time.Second
if width > 50 {
timeLeftBox = " " + left.String()
}
}
return pbBox + numbersBox + timeLeftBox
}
开发者ID:kleptog,项目名称:docker,代码行数:39,代码来源:jsonmessage.go
示例6: main
func main() {
disc, err := discover.NewClient()
if err != nil {
log.Fatal(err)
}
scheduler, err := client.New()
if err != nil {
log.Fatal(err)
}
state, err := scheduler.State()
if err != nil {
log.Fatal(err)
}
var firstHost string
for k := range state {
firstHost = k
break
}
if firstHost == "" {
log.Fatal("no hosts")
}
id := randomID()
services, err := disc.Services("flynn-lorne-attach." + firstHost)
if err != nil {
log.Fatal(err)
}
conn, err := net.Dial("tcp", services.OnlineAddrs()[0])
if err != nil {
log.Fatal(err)
}
ws, _ := term.GetWinsize(os.Stdin.Fd())
err = gob.NewEncoder(conn).Encode(&lorne.AttachReq{
JobID: id,
Flags: lorne.AttachFlagStdout | lorne.AttachFlagStderr | lorne.AttachFlagStdin | lorne.AttachFlagStream,
Height: int(ws.Height),
Width: int(ws.Width),
})
if err != nil {
log.Fatal(err)
}
attachState := make([]byte, 1)
if _, err := conn.Read(attachState); err != nil {
log.Fatal(err)
}
switch attachState[0] {
case lorne.AttachError:
log.Fatal("attach error")
}
schedReq := &sampi.ScheduleReq{
Incremental: true,
HostJobs: map[string][]*sampi.Job{firstHost: {{ID: id, Config: &docker.Config{
Image: "titanous/redis",
Cmd: []string{"/bin/bash", "-i"},
Tty: true,
AttachStdin: true,
AttachStdout: true,
AttachStderr: true,
OpenStdin: true,
StdinOnce: true,
Env: []string{
"COLUMNS=" + strconv.Itoa(int(ws.Width)),
"LINES=" + strconv.Itoa(int(ws.Height)),
"TERM=" + os.Getenv("TERM"),
},
}}}},
}
if _, err := scheduler.Schedule(schedReq); err != nil {
log.Fatal(err)
}
if _, err := conn.Read(attachState); err != nil {
log.Fatal(err)
}
oldState, err := term.SetRawTerminal(os.Stdin.Fd())
if err != nil {
log.Fatal(err)
}
go io.Copy(conn, os.Stdin)
if _, err := io.Copy(os.Stdout, conn); err != nil {
log.Fatal(err)
}
term.RestoreTerminal(os.Stdin.Fd(), oldState)
}
开发者ID:pombredanne,项目名称:sampi,代码行数:90,代码来源:scheduler.go
注:本文中的github.com/dotcloud/docker/term.GetWinsize函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论