@cryptotaxi247 / kubo / commits / 973266ae1

re-add dep needed for windows builds (#2611)

License: MIT Signed-off-by: Jeromy <why@ipfs.io>

Jeromy Johnson committed Apr 27, 2016 at 11:49 UTC 973266ae114ac4604e9e73d701138ce6682e26af
13 files changed +324 -2
Godeps/_workspace/src/github.com/olekukonko/ts/.travis.yml new
+6
@@ -0,0 +1,6 @@
1 +language: go
2 +
3 +go:
4 + - 1.1
5 + - 1.2
6 + - tip
\ No newline at end of file
Godeps/_workspace/src/github.com/olekukonko/ts/LICENCE new
+19
@@ -0,0 +1,19 @@
1 +Copyright (C) 2014 by Oleku Konko
2 +
3 +Permission is hereby granted, free of charge, to any person obtaining a copy
4 +of this software and associated documentation files (the "Software"), to deal
5 +in the Software without restriction, including without limitation the rights
6 +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 +copies of the Software, and to permit persons to whom the Software is
8 +furnished to do so, subject to the following conditions:
9 +
10 +The above copyright notice and this permission notice shall be included in
11 +all copies or substantial portions of the Software.
12 +
13 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 +THE SOFTWARE.
\ No newline at end of file
Godeps/_workspace/src/github.com/olekukonko/ts/README.md new
+28
@@ -0,0 +1,28 @@
1 +ts (Terminal Size)
2 +==
3 +
4 +[![Build Status](https://travis-ci.org/olekukonko/ts.png?branch=master)](https://travis-ci.org/olekukonko/ts) [![Total views](https://sourcegraph.com/api/repos/github.com/olekukonko/ts/counters/views.png)](https://sourcegraph.com/github.com/olekukonko/ts)
5 +
6 +Simple go Application to get Terminal Size. So Many Implementations do not support windows but `ts` has full windows support.
7 +Run `go get github.com/olekukonko/ts` to download and install
8 +
9 +#### Example
10 +
11 +```go
12 +package main
13 +
14 +import (
15 + "fmt"
16 + "github.com/olekukonko/ts"
17 +)
18 +
19 +func main() {
20 + size, _ := ts.GetSize()
21 + fmt.Println(size.Col()) // Get Width
22 + fmt.Println(size.Row()) // Get Height
23 + fmt.Println(size.PosX()) // Get X position
24 + fmt.Println(size.PosY()) // Get Y position
25 +}
26 +```
27 +
28 +[See Documentation](http://godoc.org/github.com/olekukonko/ts)
Godeps/_workspace/src/github.com/olekukonko/ts/doc.go new
+36
@@ -0,0 +1,36 @@
1 +// Copyright 2014 Oleku Konko All rights reserved.
2 +// Use of this source code is governed by a MIT
3 +// license that can be found in the LICENSE file.
4 +
5 +// This module is a Terminal API for the Go Programming Language.
6 +// The protocols were written in pure Go and works on windows and unix systems
7 +
8 +/**
9 +
10 +Simple go Application to get Terminal Size. So Many Implementations do not support windows but `ts` has full windows support.
11 +Run `go get github.com/olekukonko/ts` to download and install
12 +
13 +Installation
14 +
15 +Minimum requirements are Go 1.1+ with fill Windows support
16 +
17 +Example
18 +
19 + package main
20 +
21 + import (
22 + "fmt"
23 + "github.com/olekukonko/ts"
24 + )
25 +
26 + func main() {
27 + size, _ := ts.GetSize()
28 + fmt.Println(size.Col()) // Get Width
29 + fmt.Println(size.Row()) // Get Height
30 + fmt.Println(size.PosX()) // Get X position
31 + fmt.Println(size.PosY()) // Get Y position
32 + }
33 +
34 +**/
35 +
36 +package ts
Godeps/_workspace/src/github.com/olekukonko/ts/ts.go new
+36
@@ -0,0 +1,36 @@
1 +// Copyright 2014 Oleku Konko All rights reserved.
2 +// Use of this source code is governed by a MIT
3 +// license that can be found in the LICENSE file.
4 +
5 +// This module is a Terminal API for the Go Programming Language.
6 +// The protocols were written in pure Go and works on windows and unix systems
7 +
8 +package ts
9 +
10 +// Return System Size
11 +type Size struct {
12 + row uint16
13 + col uint16
14 + posX uint16
15 + posY uint16
16 +}
17 +
18 +// Get Terminal Width
19 +func (w Size) Col() int {
20 + return int(w.col)
21 +}
22 +
23 +// Get Terminal Height
24 +func (w Size) Row() int {
25 + return int(w.row)
26 +}
27 +
28 +// Get Position X
29 +func (w Size) PosX() int {
30 + return int(w.posX)
31 +}
32 +
33 +// Get Position Y
34 +func (w Size) PosY() int {
35 + return int(w.posY)
36 +}
Godeps/_workspace/src/github.com/olekukonko/ts/ts_darwin.go new
+14
@@ -0,0 +1,14 @@
1 +// +build darwin
2 +
3 +// Copyright 2014 Oleku Konko All rights reserved.
4 +// Use of this source code is governed by a MIT
5 +// license that can be found in the LICENSE file.
6 +
7 +// This module is a Terminal API for the Go Programming Language.
8 +// The protocols were written in pure Go and works on windows and unix systems
9 +
10 +package ts
11 +
12 +const (
13 + TIOCGWINSZ = 0x40087468
14 +)
Godeps/_workspace/src/github.com/olekukonko/ts/ts_linux.go new
+13
@@ -0,0 +1,13 @@
1 +// +build linux
2 +
3 +// Copyright 2014 Oleku Konko All rights reserved.
4 +// Use of this source code is governed by a MIT
5 +// license that can be found in the LICENSE file.
6 +
7 +// This module is a Terminal API for the Go Programming Language.
8 +// The protocols were written in pure Go and works on windows and unix systems
9 +package ts
10 +
11 +const (
12 + TIOCGWINSZ = 0x5413
13 +)
Godeps/_workspace/src/github.com/olekukonko/ts/ts_other.go new
+14
@@ -0,0 +1,14 @@
1 +// +build !windows,!darwin,!freebsd,!netbsd,!openbsd,!linux
2 +
3 +// Copyright 2014 Oleku Konko All rights reserved.
4 +// Use of this source code is governed by a MIT
5 +// license that can be found in the LICENSE file.
6 +
7 +// This module is a Terminal API for the Go Programming Language.
8 +// The protocols were written in pure Go and works on windows and unix systems
9 +
10 +package ts
11 +
12 +const (
13 + TIOCGWINSZ = 0
14 +)
Godeps/_workspace/src/github.com/olekukonko/ts/ts_test.go new
+32
@@ -0,0 +1,32 @@
1 +// Copyright 2014 Oleku Konko All rights reserved.
2 +// Use of this source code is governed by a MIT
3 +// license that can be found in the LICENSE file.
4 +
5 +// This module is a Terminal API for the Go Programming Language.
6 +// The protocols were written in pure Go and works on windows and unix systems
7 +
8 +package ts
9 +
10 +import (
11 + "fmt"
12 + "testing"
13 +)
14 +
15 +func ExampleGetSize() {
16 + size, _ := GetSize()
17 + fmt.Println(size.Col()) // Get Width
18 + fmt.Println(size.Row()) // Get Height
19 + fmt.Println(size.PosX()) // Get X position
20 + fmt.Println(size.PosY()) // Get Y position
21 +}
22 +
23 +func TestSize(t *testing.T) {
24 + size, err := GetSize()
25 +
26 + if err != nil {
27 + t.Fatal(err)
28 + }
29 + if size.Col() == 0 || size.Row() == 0 {
30 + t.Fatalf("Screen Size Failed")
31 + }
32 +}
Godeps/_workspace/src/github.com/olekukonko/ts/ts_unix.go new
+14
@@ -0,0 +1,14 @@
1 +// +build freebsd netbsd openbsd
2 +
3 +// Copyright 2014 Oleku Konko All rights reserved.
4 +// Use of this source code is governed by a MIT
5 +// license that can be found in the LICENSE file.
6 +
7 +// This module is a Terminal API for the Go Programming Language.
8 +// The protocols were written in pure Go and works on windows and unix systems
9 +
10 +package ts
11 +
12 +const (
13 + TIOCGWINSZ = 0x40087468
14 +)
Godeps/_workspace/src/github.com/olekukonko/ts/ts_windows.go new
+64
@@ -0,0 +1,64 @@
1 +// +build windows
2 +
3 +// Copyright 2014 Oleku Konko All rights reserved.
4 +// Use of this source code is governed by a MIT
5 +// license that can be found in the LICENSE file.
6 +
7 +// This module is a Terminal API for the Go Programming Language.
8 +// The protocols were written in pure Go and works on windows and unix systems
9 +
10 +package ts
11 +
12 +import (
13 + "syscall"
14 + "unsafe"
15 +)
16 +
17 +var (
18 + kernel32 = syscall.NewLazyDLL("kernel32.dll")
19 +
20 + // Retrieves information about the specified console screen buffer.
21 + // See http://msdn.microsoft.com/en-us/library/windows/desktop/ms683171(v=vs.85).aspx
22 + screenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
23 +)
24 +
25 +// Contains information about a console screen buffer.
26 +// http://msdn.microsoft.com/en-us/library/windows/desktop/ms682093(v=vs.85).aspx
27 +type CONSOLE_SCREEN_BUFFER_INFO struct {
28 + DwSize COORD
29 + DwCursorPosition COORD
30 + WAttributes uint16
31 + SrWindow SMALL_RECT
32 + DwMaximumWindowSize COORD
33 +}
34 +
35 +// Defines the coordinates of a character cell in a console screen buffer.
36 +// The origin of the coordinate system (0,0) is at the top, left cell of the buffer.
37 +// See http://msdn.microsoft.com/en-us/library/windows/desktop/ms682119(v=vs.85).aspx
38 +type COORD struct {
39 + X, Y uint16
40 +}
41 +
42 +// Defines the coordinates of the upper left and lower right corners of a rectangle.
43 +// See http://msdn.microsoft.com/en-us/library/windows/desktop/ms686311(v=vs.85).aspx
44 +type SMALL_RECT struct {
45 + Left, Top, Right, Bottom uint16
46 +}
47 +
48 +func GetSize() (ws Size, err error) {
49 + var info CONSOLE_SCREEN_BUFFER_INFO
50 + rc, _, err := screenBufferInfo.Call(
51 + uintptr(syscall.Stdout),
52 + uintptr(unsafe.Pointer(&info)))
53 +
54 + if rc == 0 {
55 + return ws, err
56 + }
57 +
58 + ws = Size{info.SrWindow.Bottom,
59 + info.SrWindow.Right,
60 + info.DwCursorPosition.X,
61 + info.DwCursorPosition.Y}
62 +
63 + return ws, nil
64 +}
Godeps/_workspace/src/github.com/olekukonko/ts/ts_x.go new
+46
@@ -0,0 +1,46 @@
1 +// +build !windows
2 +
3 +// Copyright 2014 Oleku Konko All rights reserved.
4 +// Use of this source code is governed by a MIT
5 +// license that can be found in the LICENSE file.
6 +
7 +// This module is a Terminal API for the Go Programming Language.
8 +// The protocols were written in pure Go and works on windows and unix systems
9 +
10 +package ts
11 +
12 +import (
13 + "syscall"
14 + "unsafe"
15 +)
16 +
17 +// Get Windows Size
18 +func GetSize() (ws Size, err error) {
19 + _, _, ec := syscall.Syscall(syscall.SYS_IOCTL,
20 + uintptr(syscall.Stdout),
21 + uintptr(TIOCGWINSZ),
22 + uintptr(unsafe.Pointer(&ws)))
23 +
24 + err = getError(ec)
25 +
26 + if TIOCGWINSZ == 0 && err != nil {
27 + ws = Size{80, 25, 0, 0}
28 + }
29 + return ws, err
30 +}
31 +
32 +func getError(ec interface{}) (err error) {
33 + switch v := ec.(type) {
34 +
35 + case syscall.Errno: // Some implementation return syscall.Errno number
36 + if v != 0 {
37 + err = syscall.Errno(v)
38 + }
39 +
40 + case error: // Some implementation return error
41 + err = ec.(error)
42 + default:
43 + err = nil
44 + }
45 + return
46 +}
Makefile
+2 -2
@@ -65,11 +65,11 @@ PHONY += go_check deps vendor install build nofuse clean uninstall
65 ##############################################################
66 # tests targets
67
68 -test: test_expensive windows_build_check
68 +test: test_expensive
69
70 test_short: build test_go_short test_sharness_short
71
72 -test_expensive: build test_go_expensive test_sharness_expensive
72 +test_expensive: build test_go_expensive test_sharness_expensive windows_build_check
73
74 test_3node:
75 cd test/3nodetest && make