├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── .golangci.yml
├── .goreleaser.yml
├── LICENSE.txt
├── Makefile
├── README.md
├── file_lookup_list.txt
├── go.mod
├── go.sum
├── main.go
├── media
├── pf-intro-long.gif
└── preflight-logo.png
├── pkg
├── core.go
├── core_test.go
├── file_lookup.go
├── no_lookup.go
├── porcelain.go
└── vt_lookup.go
├── test.sh
└── vendor
├── github.com
├── VirusTotal
│ └── vt-go
│ │ ├── AUTHORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── client.go
│ │ ├── feed.go
│ │ ├── filescan.go
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── iterator.go
│ │ ├── monitor.go
│ │ ├── object.go
│ │ ├── relationship.go
│ │ ├── urlscan.go
│ │ └── vt.go
├── alecthomas
│ ├── assert
│ │ ├── LICENCE.txt
│ │ ├── README.md
│ │ ├── assertions.go
│ │ ├── diff.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── forward_assertions.go
│ │ └── http_assertions.go
│ ├── colour
│ │ ├── .travis.yml
│ │ ├── COPYING
│ │ ├── README.md
│ │ └── colour.go
│ ├── kong
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── COPYING
│ │ ├── README.md
│ │ ├── build.go
│ │ ├── callbacks.go
│ │ ├── camelcase.go
│ │ ├── context.go
│ │ ├── defaults.go
│ │ ├── doc.go
│ │ ├── error.go
│ │ ├── global.go
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── guesswidth.go
│ │ ├── guesswidth_unix.go
│ │ ├── help.go
│ │ ├── hooks.go
│ │ ├── interpolate.go
│ │ ├── kong.go
│ │ ├── kong.png
│ │ ├── kong.sketch
│ │ ├── levenshtein.go
│ │ ├── mapper.go
│ │ ├── model.go
│ │ ├── options.go
│ │ ├── resolver.go
│ │ ├── scanner.go
│ │ ├── tag.go
│ │ ├── util.go
│ │ └── visit.go
│ └── repr
│ │ ├── COPYING
│ │ ├── README.md
│ │ ├── go.mod
│ │ ├── go.sum
│ │ └── repr.go
├── fatih
│ └── color
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── color.go
│ │ ├── doc.go
│ │ ├── go.mod
│ │ └── go.sum
├── mattn
│ ├── go-colorable
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── colorable_appengine.go
│ │ ├── colorable_others.go
│ │ ├── colorable_windows.go
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── go.test.sh
│ │ └── noncolorable.go
│ └── go-isatty
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── doc.go
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── go.test.sh
│ │ ├── isatty_bsd.go
│ │ ├── isatty_others.go
│ │ ├── isatty_plan9.go
│ │ ├── isatty_solaris.go
│ │ ├── isatty_tcgets.go
│ │ ├── isatty_windows.go
│ │ └── renovate.json
├── pkg
│ └── errors
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── appveyor.yml
│ │ ├── errors.go
│ │ ├── go113.go
│ │ └── stack.go
├── sergi
│ └── go-diff
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ └── diffmatchpatch
│ │ ├── diff.go
│ │ ├── diffmatchpatch.go
│ │ ├── match.go
│ │ ├── mathutil.go
│ │ ├── operation_string.go
│ │ ├── patch.go
│ │ └── stringutil.go
├── thedevsaddam
│ └── gojsonq
│ │ └── v2
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE.md
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── decoder.go
│ │ ├── doc.go
│ │ ├── go.mod
│ │ ├── gojsonq.png
│ │ ├── helper.go
│ │ ├── jetbrains-grayscale.png
│ │ ├── jsonq.go
│ │ ├── option.go
│ │ ├── query.go
│ │ └── result.go
└── thoas
│ └── go-funk
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── Makefile
│ ├── README.rst
│ ├── assign.go
│ ├── builder.go
│ ├── chain_builder.go
│ ├── compact.go
│ ├── fill.go
│ ├── go.mod
│ ├── go.sum
│ ├── helpers.go
│ ├── intersection.go
│ ├── join.go
│ ├── join_primitives.go
│ ├── lazy_builder.go
│ ├── map.go
│ ├── max.go
│ ├── min.go
│ ├── operation.go
│ ├── permutation.go
│ ├── predicate.go
│ ├── presence.go
│ ├── reduce.go
│ ├── retrieve.go
│ ├── scan.go
│ ├── short_if.go
│ ├── subset.go
│ ├── subtraction.go
│ ├── transform.go
│ ├── typesafe.go
│ ├── utils.go
│ ├── without.go
│ └── zip.go
├── golang.org
└── x
│ └── sys
│ ├── AUTHORS
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── PATENTS
│ ├── internal
│ └── unsafeheader
│ │ └── unsafeheader.go
│ └── unix
│ ├── .gitignore
│ ├── README.md
│ ├── affinity_linux.go
│ ├── aliases.go
│ ├── asm_aix_ppc64.s
│ ├── asm_darwin_386.s
│ ├── asm_darwin_amd64.s
│ ├── asm_darwin_arm.s
│ ├── asm_darwin_arm64.s
│ ├── asm_dragonfly_amd64.s
│ ├── asm_freebsd_386.s
│ ├── asm_freebsd_amd64.s
│ ├── asm_freebsd_arm.s
│ ├── asm_freebsd_arm64.s
│ ├── asm_linux_386.s
│ ├── asm_linux_amd64.s
│ ├── asm_linux_arm.s
│ ├── asm_linux_arm64.s
│ ├── asm_linux_mips64x.s
│ ├── asm_linux_mipsx.s
│ ├── asm_linux_ppc64x.s
│ ├── asm_linux_riscv64.s
│ ├── asm_linux_s390x.s
│ ├── asm_netbsd_386.s
│ ├── asm_netbsd_amd64.s
│ ├── asm_netbsd_arm.s
│ ├── asm_netbsd_arm64.s
│ ├── asm_openbsd_386.s
│ ├── asm_openbsd_amd64.s
│ ├── asm_openbsd_arm.s
│ ├── asm_openbsd_arm64.s
│ ├── asm_openbsd_mips64.s
│ ├── asm_solaris_amd64.s
│ ├── asm_zos_s390x.s
│ ├── bluetooth_linux.go
│ ├── cap_freebsd.go
│ ├── constants.go
│ ├── dev_aix_ppc.go
│ ├── dev_aix_ppc64.go
│ ├── dev_darwin.go
│ ├── dev_dragonfly.go
│ ├── dev_freebsd.go
│ ├── dev_linux.go
│ ├── dev_netbsd.go
│ ├── dev_openbsd.go
│ ├── dev_zos.go
│ ├── dirent.go
│ ├── endian_big.go
│ ├── endian_little.go
│ ├── env_unix.go
│ ├── epoll_zos.go
│ ├── errors_freebsd_386.go
│ ├── errors_freebsd_amd64.go
│ ├── errors_freebsd_arm.go
│ ├── errors_freebsd_arm64.go
│ ├── fcntl.go
│ ├── fcntl_darwin.go
│ ├── fcntl_linux_32bit.go
│ ├── fdset.go
│ ├── fstatfs_zos.go
│ ├── gccgo.go
│ ├── gccgo_c.c
│ ├── gccgo_linux_amd64.go
│ ├── ioctl.go
│ ├── ioctl_zos.go
│ ├── mkall.sh
│ ├── mkerrors.sh
│ ├── pagesize_unix.go
│ ├── pledge_openbsd.go
│ ├── ptrace_darwin.go
│ ├── ptrace_ios.go
│ ├── race.go
│ ├── race0.go
│ ├── readdirent_getdents.go
│ ├── readdirent_getdirentries.go
│ ├── sockcmsg_dragonfly.go
│ ├── sockcmsg_linux.go
│ ├── sockcmsg_unix.go
│ ├── sockcmsg_unix_other.go
│ ├── str.go
│ ├── syscall.go
│ ├── syscall_aix.go
│ ├── syscall_aix_ppc.go
│ ├── syscall_aix_ppc64.go
│ ├── syscall_bsd.go
│ ├── syscall_darwin.1_12.go
│ ├── syscall_darwin.1_13.go
│ ├── syscall_darwin.go
│ ├── syscall_darwin_386.go
│ ├── syscall_darwin_amd64.go
│ ├── syscall_darwin_arm.go
│ ├── syscall_darwin_arm64.go
│ ├── syscall_darwin_libSystem.go
│ ├── syscall_dragonfly.go
│ ├── syscall_dragonfly_amd64.go
│ ├── syscall_freebsd.go
│ ├── syscall_freebsd_386.go
│ ├── syscall_freebsd_amd64.go
│ ├── syscall_freebsd_arm.go
│ ├── syscall_freebsd_arm64.go
│ ├── syscall_illumos.go
│ ├── syscall_linux.go
│ ├── syscall_linux_386.go
│ ├── syscall_linux_amd64.go
│ ├── syscall_linux_amd64_gc.go
│ ├── syscall_linux_arm.go
│ ├── syscall_linux_arm64.go
│ ├── syscall_linux_gc.go
│ ├── syscall_linux_gc_386.go
│ ├── syscall_linux_gc_arm.go
│ ├── syscall_linux_gccgo_386.go
│ ├── syscall_linux_gccgo_arm.go
│ ├── syscall_linux_mips64x.go
│ ├── syscall_linux_mipsx.go
│ ├── syscall_linux_ppc64x.go
│ ├── syscall_linux_riscv64.go
│ ├── syscall_linux_s390x.go
│ ├── syscall_linux_sparc64.go
│ ├── syscall_netbsd.go
│ ├── syscall_netbsd_386.go
│ ├── syscall_netbsd_amd64.go
│ ├── syscall_netbsd_arm.go
│ ├── syscall_netbsd_arm64.go
│ ├── syscall_openbsd.go
│ ├── syscall_openbsd_386.go
│ ├── syscall_openbsd_amd64.go
│ ├── syscall_openbsd_arm.go
│ ├── syscall_openbsd_arm64.go
│ ├── syscall_openbsd_mips64.go
│ ├── syscall_solaris.go
│ ├── syscall_solaris_amd64.go
│ ├── syscall_unix.go
│ ├── syscall_unix_gc.go
│ ├── syscall_unix_gc_ppc64x.go
│ ├── syscall_zos_s390x.go
│ ├── timestruct.go
│ ├── unveil_openbsd.go
│ ├── xattr_bsd.go
│ ├── zerrors_aix_ppc.go
│ ├── zerrors_aix_ppc64.go
│ ├── zerrors_darwin_386.go
│ ├── zerrors_darwin_amd64.go
│ ├── zerrors_darwin_arm.go
│ ├── zerrors_darwin_arm64.go
│ ├── zerrors_dragonfly_amd64.go
│ ├── zerrors_freebsd_386.go
│ ├── zerrors_freebsd_amd64.go
│ ├── zerrors_freebsd_arm.go
│ ├── zerrors_freebsd_arm64.go
│ ├── zerrors_linux.go
│ ├── zerrors_linux_386.go
│ ├── zerrors_linux_amd64.go
│ ├── zerrors_linux_arm.go
│ ├── zerrors_linux_arm64.go
│ ├── zerrors_linux_mips.go
│ ├── zerrors_linux_mips64.go
│ ├── zerrors_linux_mips64le.go
│ ├── zerrors_linux_mipsle.go
│ ├── zerrors_linux_ppc64.go
│ ├── zerrors_linux_ppc64le.go
│ ├── zerrors_linux_riscv64.go
│ ├── zerrors_linux_s390x.go
│ ├── zerrors_linux_sparc64.go
│ ├── zerrors_netbsd_386.go
│ ├── zerrors_netbsd_amd64.go
│ ├── zerrors_netbsd_arm.go
│ ├── zerrors_netbsd_arm64.go
│ ├── zerrors_openbsd_386.go
│ ├── zerrors_openbsd_amd64.go
│ ├── zerrors_openbsd_arm.go
│ ├── zerrors_openbsd_arm64.go
│ ├── zerrors_openbsd_mips64.go
│ ├── zerrors_solaris_amd64.go
│ ├── zerrors_zos_s390x.go
│ ├── zptrace_armnn_linux.go
│ ├── zptrace_linux_arm64.go
│ ├── zptrace_mipsnn_linux.go
│ ├── zptrace_mipsnnle_linux.go
│ ├── zptrace_x86_linux.go
│ ├── zsyscall_aix_ppc.go
│ ├── zsyscall_aix_ppc64.go
│ ├── zsyscall_aix_ppc64_gc.go
│ ├── zsyscall_aix_ppc64_gccgo.go
│ ├── zsyscall_darwin_386.1_13.go
│ ├── zsyscall_darwin_386.1_13.s
│ ├── zsyscall_darwin_386.go
│ ├── zsyscall_darwin_386.s
│ ├── zsyscall_darwin_amd64.1_13.go
│ ├── zsyscall_darwin_amd64.1_13.s
│ ├── zsyscall_darwin_amd64.go
│ ├── zsyscall_darwin_amd64.s
│ ├── zsyscall_darwin_arm.1_13.go
│ ├── zsyscall_darwin_arm.1_13.s
│ ├── zsyscall_darwin_arm.go
│ ├── zsyscall_darwin_arm.s
│ ├── zsyscall_darwin_arm64.1_13.go
│ ├── zsyscall_darwin_arm64.1_13.s
│ ├── zsyscall_darwin_arm64.go
│ ├── zsyscall_darwin_arm64.s
│ ├── zsyscall_dragonfly_amd64.go
│ ├── zsyscall_freebsd_386.go
│ ├── zsyscall_freebsd_amd64.go
│ ├── zsyscall_freebsd_arm.go
│ ├── zsyscall_freebsd_arm64.go
│ ├── zsyscall_illumos_amd64.go
│ ├── zsyscall_linux.go
│ ├── zsyscall_linux_386.go
│ ├── zsyscall_linux_amd64.go
│ ├── zsyscall_linux_arm.go
│ ├── zsyscall_linux_arm64.go
│ ├── zsyscall_linux_mips.go
│ ├── zsyscall_linux_mips64.go
│ ├── zsyscall_linux_mips64le.go
│ ├── zsyscall_linux_mipsle.go
│ ├── zsyscall_linux_ppc64.go
│ ├── zsyscall_linux_ppc64le.go
│ ├── zsyscall_linux_riscv64.go
│ ├── zsyscall_linux_s390x.go
│ ├── zsyscall_linux_sparc64.go
│ ├── zsyscall_netbsd_386.go
│ ├── zsyscall_netbsd_amd64.go
│ ├── zsyscall_netbsd_arm.go
│ ├── zsyscall_netbsd_arm64.go
│ ├── zsyscall_openbsd_386.go
│ ├── zsyscall_openbsd_amd64.go
│ ├── zsyscall_openbsd_arm.go
│ ├── zsyscall_openbsd_arm64.go
│ ├── zsyscall_openbsd_mips64.go
│ ├── zsyscall_solaris_amd64.go
│ ├── zsyscall_zos_s390x.go
│ ├── zsysctl_openbsd_386.go
│ ├── zsysctl_openbsd_amd64.go
│ ├── zsysctl_openbsd_arm.go
│ ├── zsysctl_openbsd_arm64.go
│ ├── zsysctl_openbsd_mips64.go
│ ├── zsysnum_darwin_386.go
│ ├── zsysnum_darwin_amd64.go
│ ├── zsysnum_darwin_arm.go
│ ├── zsysnum_darwin_arm64.go
│ ├── zsysnum_dragonfly_amd64.go
│ ├── zsysnum_freebsd_386.go
│ ├── zsysnum_freebsd_amd64.go
│ ├── zsysnum_freebsd_arm.go
│ ├── zsysnum_freebsd_arm64.go
│ ├── zsysnum_linux_386.go
│ ├── zsysnum_linux_amd64.go
│ ├── zsysnum_linux_arm.go
│ ├── zsysnum_linux_arm64.go
│ ├── zsysnum_linux_mips.go
│ ├── zsysnum_linux_mips64.go
│ ├── zsysnum_linux_mips64le.go
│ ├── zsysnum_linux_mipsle.go
│ ├── zsysnum_linux_ppc64.go
│ ├── zsysnum_linux_ppc64le.go
│ ├── zsysnum_linux_riscv64.go
│ ├── zsysnum_linux_s390x.go
│ ├── zsysnum_linux_sparc64.go
│ ├── zsysnum_netbsd_386.go
│ ├── zsysnum_netbsd_amd64.go
│ ├── zsysnum_netbsd_arm.go
│ ├── zsysnum_netbsd_arm64.go
│ ├── zsysnum_openbsd_386.go
│ ├── zsysnum_openbsd_amd64.go
│ ├── zsysnum_openbsd_arm.go
│ ├── zsysnum_openbsd_arm64.go
│ ├── zsysnum_openbsd_mips64.go
│ ├── zsysnum_zos_s390x.go
│ ├── ztypes_aix_ppc.go
│ ├── ztypes_aix_ppc64.go
│ ├── ztypes_darwin_386.go
│ ├── ztypes_darwin_amd64.go
│ ├── ztypes_darwin_arm.go
│ ├── ztypes_darwin_arm64.go
│ ├── ztypes_dragonfly_amd64.go
│ ├── ztypes_freebsd_386.go
│ ├── ztypes_freebsd_amd64.go
│ ├── ztypes_freebsd_arm.go
│ ├── ztypes_freebsd_arm64.go
│ ├── ztypes_linux.go
│ ├── ztypes_linux_386.go
│ ├── ztypes_linux_amd64.go
│ ├── ztypes_linux_arm.go
│ ├── ztypes_linux_arm64.go
│ ├── ztypes_linux_mips.go
│ ├── ztypes_linux_mips64.go
│ ├── ztypes_linux_mips64le.go
│ ├── ztypes_linux_mipsle.go
│ ├── ztypes_linux_ppc64.go
│ ├── ztypes_linux_ppc64le.go
│ ├── ztypes_linux_riscv64.go
│ ├── ztypes_linux_s390x.go
│ ├── ztypes_linux_sparc64.go
│ ├── ztypes_netbsd_386.go
│ ├── ztypes_netbsd_amd64.go
│ ├── ztypes_netbsd_arm.go
│ ├── ztypes_netbsd_arm64.go
│ ├── ztypes_openbsd_386.go
│ ├── ztypes_openbsd_amd64.go
│ ├── ztypes_openbsd_arm.go
│ ├── ztypes_openbsd_arm64.go
│ ├── ztypes_openbsd_mips64.go
│ ├── ztypes_solaris_amd64.go
│ └── ztypes_zos_s390x.go
└── modules.txt
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | pull_request:
8 |
9 | jobs:
10 | build:
11 | name: Build
12 | runs-on: ${{ matrix.os }}
13 | strategy:
14 | matrix:
15 | os: [ubuntu-latest, macos-latest]
16 | go: ['1.14', '1.15', '1.16']
17 | env:
18 | VERBOSE: 1
19 | GOFLAGS: -mod=readonly
20 | GOPROXY: https://proxy.golang.org
21 |
22 | steps:
23 | - name: Set up Go
24 | uses: actions/setup-go@v2
25 | with:
26 | go-version: ${{ matrix.go }}
27 |
28 | - name: Checkout code
29 | uses: actions/checkout@v2
30 |
31 | - name: golangci-lint
32 | uses: golangci/golangci-lint-action@v2
33 | with:
34 | args: --timeout 5m0s
35 |
36 | - name: Test
37 | run: make test
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | autobrew
2 | dist/
3 | preflight
4 | .vscode/
5 | node_modules/
6 | coverage.out
7 | todo.txt
8 |
--------------------------------------------------------------------------------
/.goreleaser.yml:
--------------------------------------------------------------------------------
1 | # This is an example .goreleaser.yml file with some sane defaults.
2 | # Make sure to check the documentation at http://goreleaser.com
3 | builds:
4 | - env:
5 | - CGO_ENABLED=0
6 | goos:
7 | - linux
8 | - windows
9 | - darwin
10 |
11 | archives:
12 | - replacements:
13 | darwin: Darwin
14 | linux: Linux
15 | windows: Windows
16 | 386: i386
17 | amd64: x86_64
18 |
19 | brews:
20 | -
21 | name: preflight
22 | tap:
23 | owner: spectralops
24 | name: homebrew-tap
25 | # Optionally a token can be provided, if it differs from the token provided to GoReleaser
26 | token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
27 | description: Verify your curl scripts and executables before running them
28 | homepage: https://github.com/spectralops/preflight
29 | license: "Apache 2.0"
30 | install: |
31 | bin.install "preflight"
32 |
33 | checksum:
34 | name_template: 'checksums.txt'
35 |
36 | snapshot:
37 | name_template: "{{ .Tag }}-next"
38 |
39 | changelog:
40 | sort: asc
41 | filters:
42 | exclude:
43 | - '^docs:'
44 | - '^test:'
45 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | setup-mac:
2 | brew install golangci-lint
3 | go install github.com/golang/mock/mockgen@v1.5.0
4 | lint:
5 | golangci-lint run
6 | test:
7 | go test -v ./pkg/... -cover
8 | coverage:
9 | go test ./pkg/... -coverprofile=coverage.out
10 | go tool cover -func=coverage.out
11 | deps:
12 | go mod tidy && go mod vendor
13 |
14 | release:
15 | goreleaser --rm-dist
16 |
17 | .PHONY: deps setup-mac release readme lint mocks
18 |
--------------------------------------------------------------------------------
/file_lookup_list.txt:
--------------------------------------------------------------------------------
1 | 123
2 | fe6d02cf15642ff8d5f61cad6d636a62fd46a5e5a49c06733fece838f5fa9d85
3 |
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/spectralops/preflight
2 |
3 | go 1.15
4 |
5 | require (
6 | github.com/VirusTotal/vt-go v0.0.0-20210415081439-66c331640a9d
7 | github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38
8 | github.com/alecthomas/colour v0.1.0 // indirect
9 | github.com/alecthomas/kong v0.2.15
10 | github.com/alecthomas/repr v0.0.0-20210301060118-828286944d6a // indirect
11 | github.com/fatih/color v1.10.0
12 | github.com/kr/pretty v0.2.0 // indirect
13 | github.com/pkg/errors v0.9.1 // indirect
14 | github.com/sergi/go-diff v1.2.0 // indirect
15 | github.com/thoas/go-funk v0.8.0
16 | golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46 // indirect
17 | )
18 |
--------------------------------------------------------------------------------
/media/pf-intro-long.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SpectralOps/preflight/53a64db9ad8bd3c6776855a7065e1825eb59012a/media/pf-intro-long.gif
--------------------------------------------------------------------------------
/media/preflight-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SpectralOps/preflight/53a64db9ad8bd3c6776855a7065e1825eb59012a/media/preflight-logo.png
--------------------------------------------------------------------------------
/pkg/file_lookup.go:
--------------------------------------------------------------------------------
1 | package pkg
2 |
3 | import (
4 | "fmt"
5 | "os"
6 | "strings"
7 | )
8 |
9 | //nolint
10 | const FILE_ENV_KEY = "PF_FILE_LOOKUP"
11 |
12 | type FileLookup struct {
13 | content string
14 | file string
15 | }
16 |
17 | func NewFileLookup(f string) (Lookup, error) {
18 | content, err := os.ReadFile(f)
19 | if err != nil {
20 | return nil, fmt.Errorf("file lookup: cannot read file: %v", err)
21 | }
22 | return &FileLookup{
23 | content: string(content),
24 | file: f,
25 | }, nil
26 | }
27 | func (p *FileLookup) Name() string {
28 | return fmt.Sprintf("file lookup: %v", p.file)
29 | }
30 | func (p *FileLookup) Hash(digest Digest) (LookupResult, error) {
31 | if strings.Contains(p.content, digest.SHA1) ||
32 | strings.Contains(p.content, digest.MD5) ||
33 | strings.Contains(p.content, digest.SHA256) {
34 |
35 | return LookupResult{
36 | Vulnerable: true,
37 | Message: "Hash was found in a vulnerable digest list",
38 | Link: p.file,
39 | }, nil
40 | }
41 | return LookupResult{}, nil
42 | }
43 |
--------------------------------------------------------------------------------
/pkg/no_lookup.go:
--------------------------------------------------------------------------------
1 | package pkg
2 |
3 | type NoLookup struct {
4 | }
5 |
6 | func (p *NoLookup) Name() string {
7 | return ""
8 | }
9 |
10 | func (p *NoLookup) Hash(digest Digest) (LookupResult, error) {
11 | return LookupResult{Vulnerable: false}, nil
12 | }
13 |
--------------------------------------------------------------------------------
/pkg/porcelain.go:
--------------------------------------------------------------------------------
1 | package pkg
2 |
3 | import (
4 | "fmt"
5 | "strings"
6 |
7 | "github.com/fatih/color"
8 | "github.com/thoas/go-funk"
9 | )
10 |
11 | //nolint
12 | const EMO_TIME = "⌛️"
13 |
14 | //nolint
15 | const EMO_CHECK = "✅"
16 |
17 | //nolint
18 | const EMO_FAILED = "❌"
19 |
20 | type Porcelain struct {
21 | }
22 |
23 | func fmtSigs(sigs []Signature) string {
24 | return strings.Join(funk.Map(sigs, func(sig Signature) string {
25 | return sig.String()
26 | }).([]string), ", ")
27 | }
28 |
29 | func fmtLookups(sigs []Lookup) string {
30 | return strings.Join(funk.Map(sigs, func(lk Lookup) string {
31 | return lk.Name()
32 | }).([]string), ", ")
33 | }
34 |
35 | func (p *Porcelain) Start(pf *Preflight) {
36 | name := ""
37 | if len(pf.Lookup) > 1 { // first item is the empty lookup
38 | name = fmt.Sprintf(" with %s", fmtLookups(pf.Lookup[1:]))
39 | }
40 | fmt.Printf("%v Preflight starting%v\n", EMO_TIME, name)
41 | }
42 | func (p *Porcelain) RunOk() {
43 | fmt.Printf("%v Preflight verified\n", EMO_CHECK)
44 | }
45 |
46 | func (p *Porcelain) ReportCheckResult(check *CheckResult) {
47 | if check.HasValidationVulns() {
48 |
49 | green := color.New(color.FgGreen).SprintFunc()
50 | red := color.New(color.FgRed).SprintFunc()
51 |
52 | fmt.Printf(`%v Preflight failed:`, EMO_FAILED)
53 | fmt.Printf(` Digest does not match.
54 |
55 | Expected:
56 | %v
57 |
58 | Actual:
59 | %v
60 | `,
61 | green(fmtSigs(check.ExpectedDigests)),
62 | red(check.ActualDigest.String()),
63 | )
64 | } else if check.HasLookupVulns() {
65 | fmt.Printf(`%v Preflight failed:`, EMO_FAILED)
66 | fmt.Printf(` Digest matches but marked as vulnerable.
67 |
68 | Information:
69 | `)
70 | fmt.Printf(" Vulnerability: %v\n", check.LookupResult.Message)
71 | fmt.Printf(" More: %v\n", check.LookupResult.Link)
72 | } else {
73 | fmt.Printf(`%v Preflight failed.`, EMO_FAILED)
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/pkg/vt_lookup.go:
--------------------------------------------------------------------------------
1 | package pkg
2 |
3 | import (
4 | "fmt"
5 | "os"
6 | "strings"
7 |
8 | vt "github.com/VirusTotal/vt-go"
9 | )
10 |
11 | //nolint
12 | const VT_ENV_KEY = "PF_VT_TOKEN"
13 |
14 | type VirusTotalLookup struct {
15 | client *vt.Client
16 | }
17 |
18 | func NewVirusTotalLookup(f string) (Lookup, error) {
19 | apikey := os.Getenv(VT_ENV_KEY)
20 | client := vt.NewClient(apikey)
21 |
22 | return &VirusTotalLookup{
23 | client: client,
24 | }, nil
25 | }
26 | func (p *VirusTotalLookup) Name() string {
27 | return "VirusTotal"
28 | }
29 | func (p *VirusTotalLookup) Hash(digest Digest) (LookupResult, error) {
30 | file, err := p.client.GetObject(vt.URL("files/%s", digest.SHA256))
31 | if err != nil {
32 | if !strings.Contains(err.Error(), "not found") { // if not found, it's ok
33 | return LookupResult{}, fmt.Errorf("virustotal: %v", err)
34 | }
35 | }
36 |
37 | if file == nil {
38 | // file is OK because it was not found
39 | return LookupResult{}, nil
40 | }
41 |
42 | m, _ := file.GetInt64("last_analysis_stats.malicious")
43 | s, _ := file.GetInt64("last_analysis_stats.suspicious")
44 |
45 | return LookupResult{
46 | Vulnerable: m+s > 0,
47 | Message: fmt.Sprintf("VirusTotal stats - malicious: %v, suspicious %v", m, s),
48 | Link: fmt.Sprintf("https://www.virustotal.com/gui/file/%v/detection", digest.SHA256),
49 | }, nil
50 | }
51 |
--------------------------------------------------------------------------------
/test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | echo 'hello'
3 |
--------------------------------------------------------------------------------
/vendor/github.com/VirusTotal/vt-go/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the official list of vt-go authors for copyright purposes.
2 | #
3 | # This does not necessarily list everyone who has contributed code, since in
4 | # some cases, their employer may be the copyright holder. To see the full list
5 | # of contributors, see the revision history in source control or
6 | # https://github.com/VirusTotal/vt-go/graphs/contributors.
7 | #
8 | # Authors who wish to be recognized in this file should add themselves (or
9 | # their employer, as appropriate).
10 |
11 | Google Inc.
12 |
--------------------------------------------------------------------------------
/vendor/github.com/VirusTotal/vt-go/README.md:
--------------------------------------------------------------------------------
1 | [](https://godoc.org/github.com/VirusTotal/vt-go)
2 | [](https://goreportcard.com/report/github.com/VirusTotal/vt-go)
3 |
4 |
5 | # vt-go
6 |
7 | This is the official Go client library for VirusTotal. With this library you can
8 | interact with the VirusTotal REST API v3 without having to send plain HTTP requests
9 | with the standard "http" package.
10 |
11 | This library is not production-ready yet, and breaking changes can still occur.
12 |
13 | ## Usage example
14 |
15 | ```golang
16 | package main
17 |
18 | import (
19 | "flag"
20 | "fmt"
21 | "log"
22 | "os"
23 |
24 | vt "github.com/VirusTotal/vt-go"
25 | )
26 |
27 | var apikey = flag.String("apikey", "", "VirusTotal API key")
28 | var sha256 = flag.String("sha256", "", "SHA-256 of some file")
29 |
30 | func main() {
31 |
32 | flag.Parse()
33 |
34 | if *apikey == "" || *sha256 == "" {
35 | fmt.Println("Must pass both the --apikey and --sha256 arguments.")
36 | os.Exit(0)
37 | }
38 |
39 | client := vt.NewClient(*apikey)
40 |
41 | file, err := client.GetObject(vt.URL("files/%s", *sha256))
42 | if err != nil {
43 | log.Fatal(err)
44 | }
45 |
46 | ls, err := file.GetTime("last_submission_date")
47 | if err != nil {
48 | log.Fatal(err)
49 | }
50 |
51 | fmt.Printf("File %s was submitted for the last time on %v\n", file.ID(), ls)
52 | }
53 | ```
54 |
--------------------------------------------------------------------------------
/vendor/github.com/VirusTotal/vt-go/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/VirusTotal/vt-go
2 |
3 | go 1.14
4 |
5 | require (
6 | github.com/stretchr/testify v1.7.0
7 | github.com/thedevsaddam/gojsonq/v2 v2.5.2
8 | )
9 |
--------------------------------------------------------------------------------
/vendor/github.com/VirusTotal/vt-go/go.sum:
--------------------------------------------------------------------------------
1 | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
7 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
8 | github.com/thedevsaddam/gojsonq/v2 v2.5.2 h1:CoMVaYyKFsVj6TjU6APqAhAvC07hTI6IQen8PHzHYY0=
9 | github.com/thedevsaddam/gojsonq/v2 v2.5.2/go.mod h1:bv6Xa7kWy82uT0LnXPE2SzGqTj33TAEeR560MdJkiXs=
10 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
11 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
12 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
13 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
14 |
--------------------------------------------------------------------------------
/vendor/github.com/VirusTotal/vt-go/relationship.go:
--------------------------------------------------------------------------------
1 | // Copyright © 2019 The vt-go authors. All Rights Reserved.
2 | // Licensed under the Apache License, Version 2.0 (the "License");
3 | // you may not use this file except in compliance with the License.
4 | // You may obtain a copy of the License at
5 | //
6 | // http://www.apache.org/licenses/LICENSE-2.0
7 | //
8 | // Unless required by applicable law or agreed to in writing, software
9 | // distributed under the License is distributed on an "AS IS" BASIS,
10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 | // See the License for the specific language governing permissions and
12 | // limitations under the License.
13 |
14 | package vt
15 |
16 | import "encoding/json"
17 |
18 | type relationshipData struct {
19 | Data json.RawMessage `json:"data,omitempty"`
20 | Links Links `json:"links,omitempty"`
21 | // IsOneToOne is true if this is a one-to-one relationship and False if
22 | // otherwise. If true Objects contains one object at most.
23 | IsOneToOne bool
24 | Objects []*Object
25 | }
26 |
27 | // Relationship contains information about a relationship between objects.
28 | type Relationship struct {
29 | data relationshipData
30 | }
31 |
32 | // IsOneToOne returns true if this is a one-to-one relationship.
33 | func (r *Relationship) IsOneToOne() bool {
34 | return r.data.IsOneToOne
35 | }
36 |
37 | // Objects return the objects in this relationship.
38 | func (r *Relationship) Objects() []*Object {
39 | return r.data.Objects
40 | }
41 |
--------------------------------------------------------------------------------
/vendor/github.com/VirusTotal/vt-go/urlscan.go:
--------------------------------------------------------------------------------
1 | // Copyright © 2017 The vt-go authors. All Rights Reserved.
2 | // Licensed under the Apache License, Version 2.0 (the "License");
3 | // you may not use this file except in compliance with the License.
4 | // You may obtain a copy of the License at
5 | //
6 | // http://www.apache.org/licenses/LICENSE-2.0
7 | //
8 | // Unless required by applicable law or agreed to in writing, software
9 | // distributed under the License is distributed on an "AS IS" BASIS,
10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 | // See the License for the specific language governing permissions and
12 | // limitations under the License.
13 |
14 | package vt
15 |
16 | import (
17 | "bytes"
18 | "encoding/json"
19 | "mime/multipart"
20 | )
21 |
22 | // URLScanner represents a URL scanner.
23 | type URLScanner struct {
24 | cli *Client
25 | }
26 |
27 | // Scan sends a URL to VirusTotal for scanning. An analysis object is returned
28 | // as soon as the URL is submitted.
29 | func (s *URLScanner) Scan(url string) (*Object, error) {
30 |
31 | b := bytes.Buffer{}
32 | w := multipart.NewWriter(&b)
33 |
34 | f, err := w.CreateFormField("url")
35 | if err != nil {
36 | return nil, err
37 | }
38 |
39 | if _, err = f.Write([]byte(url)); err != nil {
40 | return nil, err
41 | }
42 |
43 | w.Close()
44 |
45 | headers := map[string]string{"Content-Type": w.FormDataContentType()}
46 |
47 | httpResp, err := s.cli.sendRequest("POST", URL("urls"), &b, headers)
48 | if err != nil {
49 | return nil, err
50 | }
51 | defer httpResp.Body.Close()
52 |
53 | apiResp, err := s.cli.parseResponse(httpResp)
54 | if err != nil {
55 | return nil, err
56 | }
57 |
58 | analysis := &Object{}
59 | if err := json.Unmarshal(apiResp.Data, analysis); err != nil {
60 | return nil, err
61 | }
62 |
63 | return analysis, nil
64 | }
65 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/assert/LICENCE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012 - 2013 Mat Ryer and Tyler Bunnell
2 |
3 | Please consider promoting this project if you find it useful.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9 | of the Software, and to permit persons to whom the Software is furnished to do
10 | so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/assert/README.md:
--------------------------------------------------------------------------------
1 | # Go assertion library (fork of [stretchr/testify/require](https://github.com/stretchr/testify/tree/master/require))
2 |
3 | This is a fork of stretchr's assertion library that does two things:
4 |
5 | 1. It makes spotting differences in equality much easier. It uses [repr](https://github.com/alecthomas/repr) and
6 | [diffmatchpatch](https://github.com/sergi/go-diff/diffmatchpatch) to display structural differences
7 | in colour.
8 | 2. Aborts tests on first assertion failure (the same behaviour as `stretchr/testify/require`).
9 |
10 | ## Example
11 |
12 | Given the following test:
13 |
14 | ```go
15 | type Person struct {
16 | Name string
17 | Age int
18 | }
19 |
20 | // Use github.com/alecthomas/assert
21 | func TestDiff(t *testing.T) {
22 | expected := []*Person{{"Alec", 20}, {"Bob", 21}, {"Sally", 22}}
23 | actual := []*Person{{"Alex", 20}, {"Bob", 22}, {"Sally", 22}}
24 | assert.Equal(t, expected, actual)
25 | }
26 |
27 | // Use github.com/stretchr/testify/require
28 | func TestTestifyDiff(t *testing.T) {
29 | expected := []*Person{{"Alec", 20}, {"Bob", 21}, {"Sally", 22}}
30 | actual := []*Person{{"Alex", 20}, {"Bob", 22}, {"Sally", 22}}
31 | require.Equal(t, expected, actual)
32 | }
33 | ```
34 |
35 | The following output illustrates the problems this solves. Firstly, it shows
36 | nested structures correctly, and secondly it highlights the differences between
37 | actual and expected text.
38 |
39 |
40 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/assert/diff.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | import (
4 | "bytes"
5 | "fmt"
6 |
7 | "github.com/alecthomas/colour"
8 | "github.com/alecthomas/repr"
9 | "github.com/sergi/go-diff/diffmatchpatch"
10 | )
11 |
12 | func DiffValues(a, b interface{}) string {
13 | printer := colour.String()
14 | diff := diffmatchpatch.New()
15 | at := repr.String(a, repr.OmitEmpty(true))
16 | bt := repr.String(b, repr.OmitEmpty(true))
17 | diffs := diff.DiffMain(at, bt, true)
18 | for _, d := range diffs {
19 | switch d.Type {
20 | case diffmatchpatch.DiffEqual:
21 | if len(d.Text) <= 40 {
22 | printer.Print(d.Text)
23 | } else {
24 | printer.Printf("%s^B...^R%s", d.Text[:15], d.Text[len(d.Text)-15:])
25 | }
26 | case diffmatchpatch.DiffDelete:
27 | printer.Printf("^9%s^R", d.Text)
28 | case diffmatchpatch.DiffInsert:
29 | printer.Printf("^a%s^R", d.Text)
30 | }
31 | }
32 | return printer.String()
33 | }
34 |
35 | func DiffValuesDefault(a, b interface{}) string {
36 | diff := diffmatchpatch.New()
37 | at := repr.String(a)
38 | bt := repr.String(b)
39 | diffs := diff.DiffMain(at, bt, true)
40 | w := bytes.NewBuffer(nil)
41 | for _, d := range diffs {
42 | switch d.Type {
43 | case diffmatchpatch.DiffEqual:
44 | if len(d.Text) <= 40 {
45 | w.WriteString(d.Text)
46 | } else {
47 | fmt.Fprintf(w, "%s...%s", d.Text[:15], d.Text[len(d.Text)-15:])
48 | }
49 | case diffmatchpatch.DiffDelete:
50 | fmt.Fprintf(w, "-{{%s}}", d.Text)
51 | case diffmatchpatch.DiffInsert:
52 | fmt.Fprintf(w, "+{{%s}}", d.Text)
53 | }
54 | }
55 | return w.String()
56 | }
57 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/assert/doc.go:
--------------------------------------------------------------------------------
1 | // Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.
2 | //
3 | // Example Usage
4 | //
5 | // The following is a complete example using assert in a standard test function:
6 | // import (
7 | // "testing"
8 | // "github.com/stretchr/testify/assert"
9 | // )
10 | //
11 | // func TestSomething(t *testing.T) {
12 | //
13 | // var a string = "Hello"
14 | // var b string = "Hello"
15 | //
16 | // assert.Equal(t, a, b, "The two words should be the same.")
17 | //
18 | // }
19 | //
20 | // if you assert many times, use the format below:
21 | //
22 | // import (
23 | // "testing"
24 | // "github.com/stretchr/testify/assert"
25 | // )
26 | //
27 | // func TestSomething(t *testing.T) {
28 | // assert := assert.New(t)
29 | //
30 | // var a string = "Hello"
31 | // var b string = "Hello"
32 | //
33 | // assert.Equal(a, b, "The two words should be the same.")
34 | // }
35 | //
36 | // Assertions
37 | //
38 | // Assertions allow you to easily write test code, and are global funcs in the `assert` package.
39 | // All assertion functions take, as the first argument, the `*testing.T` object provided by the
40 | // testing framework. This allows the assertion funcs to write the failings and other details to
41 | // the correct place.
42 | //
43 | // Every assertion function also takes an optional string message as the final argument,
44 | // allowing custom error messages to be appended to the message the assertion method outputs.
45 | package assert
46 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/assert/errors.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | import (
4 | "errors"
5 | )
6 |
7 | // AnError is an error instance useful for testing. If the code does not care
8 | // about error specifics, and only needs to return the error for example, this
9 | // error should be used to make the test code more readable.
10 | var AnError = errors.New("assert.AnError general error for testing")
11 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/colour/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | install: go get -t -v ./...
4 | go: 1.2
5 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/colour/COPYING:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Alec Thomas
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/colour/README.md:
--------------------------------------------------------------------------------
1 | # Colour terminal text for Go (Golang) [](http://godoc.org/github.com/alecthomas/colour) [](https://travis-ci.org/alecthomas/colour)
2 |
3 | Package colour provides [Quake-style colour formatting][2] for Unix terminals.
4 |
5 | The package level functions can be used to write to stdout (or strings or
6 | other files). If stdout is not a terminal, colour formatting will be
7 | stripped.
8 |
9 | eg.
10 |
11 | colour.Printf("^0black ^1red ^2green ^3yellow ^4blue ^5magenta ^6cyan ^7white^R\n")
12 |
13 |
14 | For more control a Printer object can be created with various helper
15 | functions. This can be used to do useful things such as strip formatting,
16 | write to strings, and so on.
17 |
18 | The following sequences are converted to their equivalent ANSI colours:
19 |
20 | | Sequence | Effect |
21 | | -------- | ------ |
22 | | ^0 | Black |
23 | | ^1 | Red |
24 | | ^2 | Green |
25 | | ^3 | Yellow |
26 | | ^4 | Blue |
27 | | ^5 | Cyan (light blue) |
28 | | ^6 | Magenta (purple) |
29 | | ^7 | White |
30 | | ^8 | Black Background |
31 | | ^9 | Red Background |
32 | | ^a | Green Background |
33 | | ^b | Yellow Background |
34 | | ^c | Blue Background |
35 | | ^d | Cyan (light blue) Background |
36 | | ^e | Magenta (purple) Background |
37 | | ^f | White Background |
38 | | ^R | Reset |
39 | | ^U | Underline |
40 | | ^D | Dim |
41 | | ^B | Bold |
42 | | ^S | Strikethrough |
43 |
44 | [1]: http://godoc.org/github.com/alecthomas/colour
45 | [2]: http://www.holysh1t.net/quake-live-colors-nickname/
46 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/.gitignore:
--------------------------------------------------------------------------------
1 | bin
2 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/.golangci.yml:
--------------------------------------------------------------------------------
1 | run:
2 | tests: true
3 |
4 | output:
5 | print-issued-lines: false
6 |
7 | linters:
8 | enable-all: true
9 | disable:
10 | - maligned
11 | - lll
12 | - gochecknoglobals
13 | - wsl
14 | - funlen
15 | - gocognit
16 | - gomnd
17 | - goprintffuncname
18 |
19 | linters-settings:
20 | govet:
21 | check-shadowing: true
22 | dupl:
23 | threshold: 100
24 | goconst:
25 | min-len: 5
26 | min-occurrences: 3
27 | gocyclo:
28 | min-complexity: 20
29 |
30 | issues:
31 | max-per-linter: 0
32 | max-same: 0
33 | exclude-use-default: false
34 | exclude:
35 | - '^(G104|G204):'
36 | # Very commonly not checked.
37 | - 'Error return value of .(.*\.Help|.*\.MarkFlagRequired|(os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked'
38 | - 'exported method (.*\.MarshalJSON|.*\.UnmarshalJSON) should have comment or be unexported'
39 | - 'composite literal uses unkeyed fields'
40 | - 'bad syntax for struct tag key'
41 | - 'bad syntax for struct tag pair'
42 | - 'result .* \(error\) is always nil'
43 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/COPYING:
--------------------------------------------------------------------------------
1 | Copyright (C) 2018 Alec Thomas
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of
4 | this software and associated documentation files (the "Software"), to deal in
5 | the Software without restriction, including without limitation the rights to
6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7 | of the Software, and to permit persons to whom the Software is furnished to do
8 | so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | 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 THE
19 | SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/defaults.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | // ApplyDefaults if they are not already set.
4 | func ApplyDefaults(target interface{}, options ...Option) error {
5 | app, err := New(target, options...)
6 | if err != nil {
7 | return err
8 | }
9 | ctx, err := Trace(app, nil)
10 | if err != nil {
11 | return err
12 | }
13 | err = ctx.Resolve()
14 | if err != nil {
15 | return err
16 | }
17 | if err = ctx.ApplyDefaults(); err != nil {
18 | return err
19 | }
20 | return ctx.Validate()
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/doc.go:
--------------------------------------------------------------------------------
1 | // Package kong aims to support arbitrarily complex command-line structures with as little developer effort as possible.
2 | //
3 | // Here's an example:
4 | //
5 | // shell rm [-f] [-r] ...
6 | // shell ls [ ...]
7 | //
8 | // This can be represented by the following command-line structure:
9 | //
10 | // package main
11 | //
12 | // import "github.com/alecthomas/kong"
13 | //
14 | // var CLI struct {
15 | // Rm struct {
16 | // Force bool `short:"f" help:"Force removal."`
17 | // Recursive bool `short:"r" help:"Recursively remove files."`
18 | //
19 | // Paths []string `arg help:"Paths to remove." type:"path"`
20 | // } `cmd help:"Remove files."`
21 | //
22 | // Ls struct {
23 | // Paths []string `arg optional help:"Paths to list." type:"path"`
24 | // } `cmd help:"List paths."`
25 | // }
26 | //
27 | // func main() {
28 | // kong.Parse(&CLI)
29 | // }
30 | //
31 | // See https://github.com/alecthomas/kong for details.
32 | package kong
33 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/error.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | // ParseError is the error type returned by Kong.Parse().
4 | //
5 | // It contains the parse Context that triggered the error.
6 | type ParseError struct {
7 | error
8 | Context *Context
9 | }
10 |
11 | // Cause returns the original cause of the error.
12 | func (p *ParseError) Cause() error { return p.error }
13 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/global.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | import (
4 | "os"
5 | )
6 |
7 | // Parse constructs a new parser and parses the default command-line.
8 | func Parse(cli interface{}, options ...Option) *Context {
9 | parser, err := New(cli, options...)
10 | if err != nil {
11 | panic(err)
12 | }
13 | ctx, err := parser.Parse(os.Args[1:])
14 | parser.FatalIfErrorf(err)
15 | return ctx
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/alecthomas/kong
2 |
3 | require (
4 | github.com/davecgh/go-spew v1.1.1 // indirect
5 | github.com/pkg/errors v0.8.1
6 | github.com/pmezard/go-difflib v1.0.0 // indirect
7 | github.com/stretchr/testify v1.2.2
8 | )
9 |
10 | go 1.13
11 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/go.sum:
--------------------------------------------------------------------------------
1 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3 | github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
4 | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
5 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
6 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
7 | github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
8 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
9 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/guesswidth.go:
--------------------------------------------------------------------------------
1 | // +build appengine !linux,!freebsd,!darwin,!dragonfly,!netbsd,!openbsd
2 |
3 | package kong
4 |
5 | import "io"
6 |
7 | func guessWidth(w io.Writer) int {
8 | return 80
9 | }
10 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/guesswidth_unix.go:
--------------------------------------------------------------------------------
1 | // +build !appengine,linux freebsd darwin dragonfly netbsd openbsd
2 |
3 | package kong
4 |
5 | import (
6 | "io"
7 | "os"
8 | "strconv"
9 | "syscall"
10 | "unsafe"
11 | )
12 |
13 | func guessWidth(w io.Writer) int {
14 | // check if COLUMNS env is set to comply with
15 | // http://pubs.opengroup.org/onlinepubs/009604499/basedefs/xbd_chap08.html
16 | colsStr := os.Getenv("COLUMNS")
17 | if colsStr != "" {
18 | if cols, err := strconv.Atoi(colsStr); err == nil {
19 | return cols
20 | }
21 | }
22 |
23 | if t, ok := w.(*os.File); ok {
24 | fd := t.Fd()
25 | var dimensions [4]uint16
26 |
27 | if _, _, err := syscall.Syscall6(
28 | syscall.SYS_IOCTL,
29 | uintptr(fd), // nolint: unconvert
30 | uintptr(syscall.TIOCGWINSZ),
31 | uintptr(unsafe.Pointer(&dimensions)), // nolint: gas
32 | 0, 0, 0,
33 | ); err == 0 {
34 | if dimensions[1] == 0 {
35 | return 80
36 | }
37 | return int(dimensions[1])
38 | }
39 | }
40 | return 80
41 | }
42 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/hooks.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | // BeforeResolve is a documentation-only interface describing hooks that run before resolvers are applied.
4 | type BeforeResolve interface {
5 | // This is not the correct signature - see README for details.
6 | BeforeResolve(args ...interface{}) error
7 | }
8 |
9 | // BeforeApply is a documentation-only interface describing hooks that run before values are set.
10 | type BeforeApply interface {
11 | // This is not the correct signature - see README for details.
12 | BeforeApply(args ...interface{}) error
13 | }
14 |
15 | // AfterApply is a documentation-only interface describing hooks that run after values are set.
16 | type AfterApply interface {
17 | // This is not the correct signature - see README for details.
18 | AfterApply(args ...interface{}) error
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/interpolate.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | import (
4 | "fmt"
5 | "regexp"
6 | )
7 |
8 | var interpolationRegex = regexp.MustCompile(`((?:\${([[:alpha:]_][[:word:]]*))(?:=([^}]+))?})|(\$)|([^$]+)`)
9 |
10 | // Interpolate variables from vars into s for substrings in the form ${var} or ${var=default}.
11 | func interpolate(s string, vars Vars, updatedVars map[string]string) (string, error) {
12 | out := ""
13 | matches := interpolationRegex.FindAllStringSubmatch(s, -1)
14 | if len(matches) == 0 {
15 | return s, nil
16 | }
17 | for key, val := range updatedVars {
18 | if vars[key] != val {
19 | vars = vars.CloneWith(updatedVars)
20 | break
21 | }
22 | }
23 | for _, match := range matches {
24 | if name := match[2]; name != "" {
25 | value, ok := vars[name]
26 | if !ok {
27 | // No default value.
28 | if match[3] == "" {
29 | return "", fmt.Errorf("undefined variable ${%s}", name)
30 | }
31 | value = match[3]
32 | }
33 | out += value
34 | } else {
35 | out += match[0]
36 | }
37 | }
38 | return out, nil
39 | }
40 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/kong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SpectralOps/preflight/53a64db9ad8bd3c6776855a7065e1825eb59012a/vendor/github.com/alecthomas/kong/kong.png
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/kong.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SpectralOps/preflight/53a64db9ad8bd3c6776855a7065e1825eb59012a/vendor/github.com/alecthomas/kong/kong.sketch
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/levenshtein.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | import "unicode/utf8"
4 |
5 | // https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Go
6 | // License: https://creativecommons.org/licenses/by-sa/3.0/
7 | func levenshtein(a, b string) int {
8 | f := make([]int, utf8.RuneCountInString(b)+1)
9 |
10 | for j := range f {
11 | f[j] = j
12 | }
13 |
14 | for _, ca := range a {
15 | j := 1
16 | fj1 := f[0] // fj1 is the value of f[j - 1] in last iteration
17 | f[0]++
18 | for _, cb := range b {
19 | mn := min(f[j]+1, f[j-1]+1) // delete & insert
20 | if cb != ca {
21 | mn = min(mn, fj1+1) // change
22 | } else {
23 | mn = min(mn, fj1) // matched
24 | }
25 |
26 | fj1, f[j] = f[j], mn // save f[j] to fj1(j is about to increase), update f[j] to mn
27 | j++
28 | }
29 | }
30 |
31 | return f[len(f)-1]
32 | }
33 |
34 | func min(a, b int) int {
35 | if a <= b {
36 | return a
37 | }
38 | return b
39 | }
40 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/resolver.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | import (
4 | "encoding/json"
5 | "io"
6 | "strings"
7 | )
8 |
9 | // A Resolver resolves a Flag value from an external source.
10 | type Resolver interface {
11 | // Validate configuration against Application.
12 | //
13 | // This can be used to validate that all provided configuration is valid within this application.
14 | Validate(app *Application) error
15 |
16 | // Resolve the value for a Flag.
17 | Resolve(context *Context, parent *Path, flag *Flag) (interface{}, error)
18 | }
19 |
20 | // ResolverFunc is a convenience type for non-validating Resolvers.
21 | type ResolverFunc func(context *Context, parent *Path, flag *Flag) (interface{}, error)
22 |
23 | var _ Resolver = ResolverFunc(nil)
24 |
25 | func (r ResolverFunc) Resolve(context *Context, parent *Path, flag *Flag) (interface{}, error) { // nolint: golint
26 | return r(context, parent, flag)
27 | }
28 | func (r ResolverFunc) Validate(app *Application) error { return nil } // nolint: golint
29 |
30 | // JSON returns a Resolver that retrieves values from a JSON source.
31 | //
32 | // Hyphens in flag names are replaced with underscores.
33 | func JSON(r io.Reader) (Resolver, error) {
34 | values := map[string]interface{}{}
35 | err := json.NewDecoder(r).Decode(&values)
36 | if err != nil {
37 | return nil, err
38 | }
39 | var f ResolverFunc = func(context *Context, parent *Path, flag *Flag) (interface{}, error) {
40 | name := strings.Replace(flag.Name, "-", "_", -1)
41 | raw, ok := values[name]
42 | if !ok {
43 | return nil, nil
44 | }
45 | return raw, nil
46 | }
47 |
48 | return f, nil
49 | }
50 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/util.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | import (
4 | "fmt"
5 | )
6 |
7 | // ConfigFlag uses the configured (via kong.Configuration(loader)) configuration loader to load configuration
8 | // from a file specified by a flag.
9 | //
10 | // Use this as a flag value to support loading of custom configuration via a flag.
11 | type ConfigFlag string
12 |
13 | // BeforeResolve adds a resolver.
14 | func (c ConfigFlag) BeforeResolve(kong *Kong, ctx *Context, trace *Path) error {
15 | if kong.loader == nil {
16 | return fmt.Errorf("kong must be configured with kong.Configuration(...)")
17 | }
18 | path := string(ctx.FlagValue(trace.Flag).(ConfigFlag))
19 | resolver, err := kong.LoadConfig(path)
20 | if err != nil {
21 | return err
22 | }
23 | ctx.AddResolver(resolver)
24 | return nil
25 | }
26 |
27 | // VersionFlag is a flag type that can be used to display a version number, stored in the "version" variable.
28 | type VersionFlag bool
29 |
30 | // BeforeApply writes the version variable and terminates with a 0 exit status.
31 | func (v VersionFlag) BeforeApply(app *Kong, vars Vars) error {
32 | fmt.Fprintln(app.Stdout, vars["version"])
33 | app.Exit(0)
34 | return nil
35 | }
36 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/kong/visit.go:
--------------------------------------------------------------------------------
1 | package kong
2 |
3 | import (
4 | "fmt"
5 | )
6 |
7 | // Next should be called by Visitor to proceed with the walk.
8 | //
9 | // The walk will terminate if "err" is non-nil.
10 | type Next func(err error) error
11 |
12 | // Visitor can be used to walk all nodes in the model.
13 | type Visitor func(node Visitable, next Next) error
14 |
15 | // Visit all nodes.
16 | func Visit(node Visitable, visitor Visitor) error {
17 | return visitor(node, func(err error) error {
18 | if err != nil {
19 | return err
20 | }
21 | switch node := node.(type) {
22 | case *Application:
23 | return visitNodeChildren(node.Node, visitor)
24 | case *Node:
25 | return visitNodeChildren(node, visitor)
26 | case *Value:
27 | case *Flag:
28 | return Visit(node.Value, visitor)
29 | default:
30 | panic(fmt.Sprintf("unsupported node type %T", node))
31 | }
32 | return nil
33 | })
34 | }
35 |
36 | func visitNodeChildren(node *Node, visitor Visitor) error {
37 | if node.Argument != nil {
38 | if err := Visit(node.Argument, visitor); err != nil {
39 | return err
40 | }
41 | }
42 | for _, flag := range node.Flags {
43 | if err := Visit(flag, visitor); err != nil {
44 | return err
45 | }
46 | }
47 | for _, pos := range node.Positional {
48 | if err := Visit(pos, visitor); err != nil {
49 | return err
50 | }
51 | }
52 | for _, child := range node.Children {
53 | if err := Visit(child, visitor); err != nil {
54 | return err
55 | }
56 | }
57 | return nil
58 | }
59 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/repr/COPYING:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Alec Thomas
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/repr/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/alecthomas/repr
2 |
3 | go 1.15
4 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/repr/go.sum:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SpectralOps/preflight/53a64db9ad8bd3c6776855a7065e1825eb59012a/vendor/github.com/alecthomas/repr/go.sum
--------------------------------------------------------------------------------
/vendor/github.com/fatih/color/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Fatih Arslan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/vendor/github.com/fatih/color/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/fatih/color
2 |
3 | go 1.13
4 |
5 | require (
6 | github.com/mattn/go-colorable v0.1.8
7 | github.com/mattn/go-isatty v0.0.12
8 | )
9 |
--------------------------------------------------------------------------------
/vendor/github.com/fatih/color/go.sum:
--------------------------------------------------------------------------------
1 | github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
2 | github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
3 | github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
4 | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
5 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
6 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
7 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
8 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | sudo: false
3 | go:
4 | - 1.13.x
5 | - tip
6 |
7 | before_install:
8 | - go get -t -v ./...
9 |
10 | script:
11 | - ./go.test.sh
12 |
13 | after_success:
14 | - bash <(curl -s https://codecov.io/bash)
15 |
16 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Yasuhiro Matsumoto
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/README.md:
--------------------------------------------------------------------------------
1 | # go-colorable
2 |
3 | [](https://travis-ci.org/mattn/go-colorable)
4 | [](https://codecov.io/gh/mattn/go-colorable)
5 | [](http://godoc.org/github.com/mattn/go-colorable)
6 | [](https://goreportcard.com/report/mattn/go-colorable)
7 |
8 | Colorable writer for windows.
9 |
10 | For example, most of logger packages doesn't show colors on windows. (I know we can do it with ansicon. But I don't want.)
11 | This package is possible to handle escape sequence for ansi color on windows.
12 |
13 | ## Too Bad!
14 |
15 | 
16 |
17 |
18 | ## So Good!
19 |
20 | 
21 |
22 | ## Usage
23 |
24 | ```go
25 | logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true})
26 | logrus.SetOutput(colorable.NewColorableStdout())
27 |
28 | logrus.Info("succeeded")
29 | logrus.Warn("not correct")
30 | logrus.Error("something error")
31 | logrus.Fatal("panic")
32 | ```
33 |
34 | You can compile above code on non-windows OSs.
35 |
36 | ## Installation
37 |
38 | ```
39 | $ go get github.com/mattn/go-colorable
40 | ```
41 |
42 | # License
43 |
44 | MIT
45 |
46 | # Author
47 |
48 | Yasuhiro Matsumoto (a.k.a mattn)
49 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/colorable_appengine.go:
--------------------------------------------------------------------------------
1 | // +build appengine
2 |
3 | package colorable
4 |
5 | import (
6 | "io"
7 | "os"
8 |
9 | _ "github.com/mattn/go-isatty"
10 | )
11 |
12 | // NewColorable returns new instance of Writer which handles escape sequence.
13 | func NewColorable(file *os.File) io.Writer {
14 | if file == nil {
15 | panic("nil passed instead of *os.File to NewColorable()")
16 | }
17 |
18 | return file
19 | }
20 |
21 | // NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.
22 | func NewColorableStdout() io.Writer {
23 | return os.Stdout
24 | }
25 |
26 | // NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.
27 | func NewColorableStderr() io.Writer {
28 | return os.Stderr
29 | }
30 |
31 | // EnableColorsStdout enable colors if possible.
32 | func EnableColorsStdout(enabled *bool) func() {
33 | if enabled != nil {
34 | *enabled = true
35 | }
36 | return func() {}
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/colorable_others.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 | // +build !appengine
3 |
4 | package colorable
5 |
6 | import (
7 | "io"
8 | "os"
9 |
10 | _ "github.com/mattn/go-isatty"
11 | )
12 |
13 | // NewColorable returns new instance of Writer which handles escape sequence.
14 | func NewColorable(file *os.File) io.Writer {
15 | if file == nil {
16 | panic("nil passed instead of *os.File to NewColorable()")
17 | }
18 |
19 | return file
20 | }
21 |
22 | // NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.
23 | func NewColorableStdout() io.Writer {
24 | return os.Stdout
25 | }
26 |
27 | // NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.
28 | func NewColorableStderr() io.Writer {
29 | return os.Stderr
30 | }
31 |
32 | // EnableColorsStdout enable colors if possible.
33 | func EnableColorsStdout(enabled *bool) func() {
34 | if enabled != nil {
35 | *enabled = true
36 | }
37 | return func() {}
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/mattn/go-colorable
2 |
3 | require (
4 | github.com/mattn/go-isatty v0.0.12
5 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae // indirect
6 | )
7 |
8 | go 1.13
9 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/go.sum:
--------------------------------------------------------------------------------
1 | github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
2 | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
3 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
4 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
5 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
6 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/go.test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 | echo "" > coverage.txt
5 |
6 | for d in $(go list ./... | grep -v vendor); do
7 | go test -race -coverprofile=profile.out -covermode=atomic "$d"
8 | if [ -f profile.out ]; then
9 | cat profile.out >> coverage.txt
10 | rm profile.out
11 | fi
12 | done
13 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-colorable/noncolorable.go:
--------------------------------------------------------------------------------
1 | package colorable
2 |
3 | import (
4 | "bytes"
5 | "io"
6 | )
7 |
8 | // NonColorable holds writer but removes escape sequence.
9 | type NonColorable struct {
10 | out io.Writer
11 | }
12 |
13 | // NewNonColorable returns new instance of Writer which removes escape sequence from Writer.
14 | func NewNonColorable(w io.Writer) io.Writer {
15 | return &NonColorable{out: w}
16 | }
17 |
18 | // Write writes data on console
19 | func (w *NonColorable) Write(data []byte) (n int, err error) {
20 | er := bytes.NewReader(data)
21 | var bw [1]byte
22 | loop:
23 | for {
24 | c1, err := er.ReadByte()
25 | if err != nil {
26 | break loop
27 | }
28 | if c1 != 0x1b {
29 | bw[0] = c1
30 | w.out.Write(bw[:])
31 | continue
32 | }
33 | c2, err := er.ReadByte()
34 | if err != nil {
35 | break loop
36 | }
37 | if c2 != 0x5b {
38 | continue
39 | }
40 |
41 | var buf bytes.Buffer
42 | for {
43 | c, err := er.ReadByte()
44 | if err != nil {
45 | break loop
46 | }
47 | if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' {
48 | break
49 | }
50 | buf.Write([]byte(string(c)))
51 | }
52 | }
53 |
54 | return len(data), nil
55 | }
56 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | sudo: false
3 | go:
4 | - 1.13.x
5 | - tip
6 |
7 | before_install:
8 | - go get -t -v ./...
9 |
10 | script:
11 | - ./go.test.sh
12 |
13 | after_success:
14 | - bash <(curl -s https://codecov.io/bash)
15 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) Yasuhiro MATSUMOTO
2 |
3 | MIT License (Expat)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/README.md:
--------------------------------------------------------------------------------
1 | # go-isatty
2 |
3 | [](http://godoc.org/github.com/mattn/go-isatty)
4 | [](https://codecov.io/gh/mattn/go-isatty)
5 | [](https://coveralls.io/github/mattn/go-isatty?branch=master)
6 | [](https://goreportcard.com/report/mattn/go-isatty)
7 |
8 | isatty for golang
9 |
10 | ## Usage
11 |
12 | ```go
13 | package main
14 |
15 | import (
16 | "fmt"
17 | "github.com/mattn/go-isatty"
18 | "os"
19 | )
20 |
21 | func main() {
22 | if isatty.IsTerminal(os.Stdout.Fd()) {
23 | fmt.Println("Is Terminal")
24 | } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) {
25 | fmt.Println("Is Cygwin/MSYS2 Terminal")
26 | } else {
27 | fmt.Println("Is Not Terminal")
28 | }
29 | }
30 | ```
31 |
32 | ## Installation
33 |
34 | ```
35 | $ go get github.com/mattn/go-isatty
36 | ```
37 |
38 | ## License
39 |
40 | MIT
41 |
42 | ## Author
43 |
44 | Yasuhiro Matsumoto (a.k.a mattn)
45 |
46 | ## Thanks
47 |
48 | * k-takata: base idea for IsCygwinTerminal
49 |
50 | https://github.com/k-takata/go-iscygpty
51 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/doc.go:
--------------------------------------------------------------------------------
1 | // Package isatty implements interface to isatty
2 | package isatty
3 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/mattn/go-isatty
2 |
3 | go 1.12
4 |
5 | require golang.org/x/sys v0.0.0-20200116001909-b77594299b42
6 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/go.sum:
--------------------------------------------------------------------------------
1 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
2 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/go.test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 | echo "" > coverage.txt
5 |
6 | for d in $(go list ./... | grep -v vendor); do
7 | go test -race -coverprofile=profile.out -covermode=atomic "$d"
8 | if [ -f profile.out ]; then
9 | cat profile.out >> coverage.txt
10 | rm profile.out
11 | fi
12 | done
13 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_bsd.go:
--------------------------------------------------------------------------------
1 | // +build darwin freebsd openbsd netbsd dragonfly
2 | // +build !appengine
3 |
4 | package isatty
5 |
6 | import "golang.org/x/sys/unix"
7 |
8 | // IsTerminal return true if the file descriptor is terminal.
9 | func IsTerminal(fd uintptr) bool {
10 | _, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA)
11 | return err == nil
12 | }
13 |
14 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
15 | // terminal. This is also always false on this environment.
16 | func IsCygwinTerminal(fd uintptr) bool {
17 | return false
18 | }
19 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_others.go:
--------------------------------------------------------------------------------
1 | // +build appengine js nacl
2 |
3 | package isatty
4 |
5 | // IsTerminal returns true if the file descriptor is terminal which
6 | // is always false on js and appengine classic which is a sandboxed PaaS.
7 | func IsTerminal(fd uintptr) bool {
8 | return false
9 | }
10 |
11 | // IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2
12 | // terminal. This is also always false on this environment.
13 | func IsCygwinTerminal(fd uintptr) bool {
14 | return false
15 | }
16 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_plan9.go:
--------------------------------------------------------------------------------
1 | // +build plan9
2 |
3 | package isatty
4 |
5 | import (
6 | "syscall"
7 | )
8 |
9 | // IsTerminal returns true if the given file descriptor is a terminal.
10 | func IsTerminal(fd uintptr) bool {
11 | path, err := syscall.Fd2path(int(fd))
12 | if err != nil {
13 | return false
14 | }
15 | return path == "/dev/cons" || path == "/mnt/term/dev/cons"
16 | }
17 |
18 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
19 | // terminal. This is also always false on this environment.
20 | func IsCygwinTerminal(fd uintptr) bool {
21 | return false
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_solaris.go:
--------------------------------------------------------------------------------
1 | // +build solaris
2 | // +build !appengine
3 |
4 | package isatty
5 |
6 | import (
7 | "golang.org/x/sys/unix"
8 | )
9 |
10 | // IsTerminal returns true if the given file descriptor is a terminal.
11 | // see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c
12 | func IsTerminal(fd uintptr) bool {
13 | var termio unix.Termio
14 | err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio)
15 | return err == nil
16 | }
17 |
18 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
19 | // terminal. This is also always false on this environment.
20 | func IsCygwinTerminal(fd uintptr) bool {
21 | return false
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/isatty_tcgets.go:
--------------------------------------------------------------------------------
1 | // +build linux aix
2 | // +build !appengine
3 |
4 | package isatty
5 |
6 | import "golang.org/x/sys/unix"
7 |
8 | // IsTerminal return true if the file descriptor is terminal.
9 | func IsTerminal(fd uintptr) bool {
10 | _, err := unix.IoctlGetTermios(int(fd), unix.TCGETS)
11 | return err == nil
12 | }
13 |
14 | // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
15 | // terminal. This is also always false on this environment.
16 | func IsCygwinTerminal(fd uintptr) bool {
17 | return false
18 | }
19 |
--------------------------------------------------------------------------------
/vendor/github.com/mattn/go-isatty/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "config:base"
4 | ],
5 | "postUpdateOptions": [
6 | "gomodTidy"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 | *.test
24 | *.prof
25 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | go_import_path: github.com/pkg/errors
3 | go:
4 | - 1.11.x
5 | - 1.12.x
6 | - 1.13.x
7 | - tip
8 |
9 | script:
10 | - make check
11 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015, Dave Cheney
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/Makefile:
--------------------------------------------------------------------------------
1 | PKGS := github.com/pkg/errors
2 | SRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS))
3 | GO := go
4 |
5 | check: test vet gofmt misspell unconvert staticcheck ineffassign unparam
6 |
7 | test:
8 | $(GO) test $(PKGS)
9 |
10 | vet: | test
11 | $(GO) vet $(PKGS)
12 |
13 | staticcheck:
14 | $(GO) get honnef.co/go/tools/cmd/staticcheck
15 | staticcheck -checks all $(PKGS)
16 |
17 | misspell:
18 | $(GO) get github.com/client9/misspell/cmd/misspell
19 | misspell \
20 | -locale GB \
21 | -error \
22 | *.md *.go
23 |
24 | unconvert:
25 | $(GO) get github.com/mdempsky/unconvert
26 | unconvert -v $(PKGS)
27 |
28 | ineffassign:
29 | $(GO) get github.com/gordonklaus/ineffassign
30 | find $(SRCDIRS) -name '*.go' | xargs ineffassign
31 |
32 | pedantic: check errcheck
33 |
34 | unparam:
35 | $(GO) get mvdan.cc/unparam
36 | unparam ./...
37 |
38 | errcheck:
39 | $(GO) get github.com/kisielk/errcheck
40 | errcheck $(PKGS)
41 |
42 | gofmt:
43 | @echo Checking code is gofmted
44 | @test -z "$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)"
45 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: build-{build}.{branch}
2 |
3 | clone_folder: C:\gopath\src\github.com\pkg\errors
4 | shallow_clone: true # for startup speed
5 |
6 | environment:
7 | GOPATH: C:\gopath
8 |
9 | platform:
10 | - x64
11 |
12 | # http://www.appveyor.com/docs/installed-software
13 | install:
14 | # some helpful output for debugging builds
15 | - go version
16 | - go env
17 | # pre-installed MinGW at C:\MinGW is 32bit only
18 | # but MSYS2 at C:\msys64 has mingw64
19 | - set PATH=C:\msys64\mingw64\bin;%PATH%
20 | - gcc --version
21 | - g++ --version
22 |
23 | build_script:
24 | - go install -v ./...
25 |
26 | test_script:
27 | - set PATH=C:\gopath\bin;%PATH%
28 | - go test -v ./...
29 |
30 | #artifacts:
31 | # - path: '%GOPATH%\bin\*.exe'
32 | deploy: off
33 |
--------------------------------------------------------------------------------
/vendor/github.com/pkg/errors/go113.go:
--------------------------------------------------------------------------------
1 | // +build go1.13
2 |
3 | package errors
4 |
5 | import (
6 | stderrors "errors"
7 | )
8 |
9 | // Is reports whether any error in err's chain matches target.
10 | //
11 | // The chain consists of err itself followed by the sequence of errors obtained by
12 | // repeatedly calling Unwrap.
13 | //
14 | // An error is considered to match a target if it is equal to that target or if
15 | // it implements a method Is(error) bool such that Is(target) returns true.
16 | func Is(err, target error) bool { return stderrors.Is(err, target) }
17 |
18 | // As finds the first error in err's chain that matches target, and if so, sets
19 | // target to that error value and returns true.
20 | //
21 | // The chain consists of err itself followed by the sequence of errors obtained by
22 | // repeatedly calling Unwrap.
23 | //
24 | // An error matches target if the error's concrete value is assignable to the value
25 | // pointed to by target, or if the error has a method As(interface{}) bool such that
26 | // As(target) returns true. In the latter case, the As method is responsible for
27 | // setting target.
28 | //
29 | // As will panic if target is not a non-nil pointer to either a type that implements
30 | // error, or to any interface type. As returns false if err is nil.
31 | func As(err error, target interface{}) bool { return stderrors.As(err, target) }
32 |
33 | // Unwrap returns the result of calling the Unwrap method on err, if err's
34 | // type contains an Unwrap method returning error.
35 | // Otherwise, Unwrap returns nil.
36 | func Unwrap(err error) error {
37 | return stderrors.Unwrap(err)
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/github.com/sergi/go-diff/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the official list of go-diff authors for copyright purposes.
2 | # This file is distinct from the CONTRIBUTORS files.
3 | # See the latter for an explanation.
4 |
5 | # Names should be added to this file as
6 | # Name or Organization
7 | # The email address is not required for organizations.
8 |
9 | # Please keep the list sorted.
10 |
11 | Danny Yoo
12 | James Kolb
13 | Jonathan Amsterdam
14 | Markus Zimmermann
15 | Matt Kovars
16 | Örjan Persson
17 | Osman Masood
18 | Robert Carlsen
19 | Rory Flynn
20 | Sergi Mansilla
21 | Shatrugna Sadhu
22 | Shawn Smith
23 | Stas Maksimov
24 | Tor Arvid Lund
25 | Zac Bergquist
26 |
--------------------------------------------------------------------------------
/vendor/github.com/sergi/go-diff/CONTRIBUTORS:
--------------------------------------------------------------------------------
1 | # This is the official list of people who can contribute
2 | # (and typically have contributed) code to the go-diff
3 | # repository.
4 | #
5 | # The AUTHORS file lists the copyright holders; this file
6 | # lists people. For example, ACME Inc. employees would be listed here
7 | # but not in AUTHORS, because ACME Inc. would hold the copyright.
8 | #
9 | # When adding J Random Contributor's name to this file,
10 | # either J's name or J's organization's name should be
11 | # added to the AUTHORS file.
12 | #
13 | # Names should be added to this file like so:
14 | # Name
15 | #
16 | # Please keep the list sorted.
17 |
18 | Danny Yoo
19 | James Kolb
20 | Jonathan Amsterdam
21 | Markus Zimmermann
22 | Matt Kovars
23 | Örjan Persson
24 | Osman Masood
25 | Robert Carlsen
26 | Rory Flynn
27 | Sergi Mansilla
28 | Shatrugna Sadhu
29 | Shawn Smith
30 | Stas Maksimov
31 | Tor Arvid Lund
32 | Zac Bergquist
33 |
--------------------------------------------------------------------------------
/vendor/github.com/sergi/go-diff/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012-2016 The go-diff Authors. All rights reserved.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a
4 | copy of this software and associated documentation files (the "Software"),
5 | to deal in the Software without restriction, including without limitation
6 | the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 | and/or sell copies of the Software, and to permit persons to whom the
8 | Software is furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included
11 | in all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
14 | OR 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
18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
19 | DEALINGS IN THE SOFTWARE.
20 |
21 |
--------------------------------------------------------------------------------
/vendor/github.com/sergi/go-diff/diffmatchpatch/mathutil.go:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2012-2016 The go-diff authors. All rights reserved.
2 | // https://github.com/sergi/go-diff
3 | // See the included LICENSE file for license details.
4 | //
5 | // go-diff is a Go implementation of Google's Diff, Match, and Patch library
6 | // Original library is Copyright (c) 2006 Google Inc.
7 | // http://code.google.com/p/google-diff-match-patch/
8 |
9 | package diffmatchpatch
10 |
11 | func min(x, y int) int {
12 | if x < y {
13 | return x
14 | }
15 | return y
16 | }
17 |
18 | func max(x, y int) int {
19 | if x > y {
20 | return x
21 | }
22 | return y
23 | }
24 |
--------------------------------------------------------------------------------
/vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.go:
--------------------------------------------------------------------------------
1 | // Code generated by "stringer -type=Operation -trimprefix=Diff"; DO NOT EDIT.
2 |
3 | package diffmatchpatch
4 |
5 | import "fmt"
6 |
7 | const _Operation_name = "DeleteEqualInsert"
8 |
9 | var _Operation_index = [...]uint8{0, 6, 11, 17}
10 |
11 | func (i Operation) String() string {
12 | i -= -1
13 | if i < 0 || i >= Operation(len(_Operation_index)-1) {
14 | return fmt.Sprintf("Operation(%d)", i+-1)
15 | }
16 | return _Operation_name[_Operation_index[i]:_Operation_index[i+1]]
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/.gitignore:
--------------------------------------------------------------------------------
1 | data.json
2 | .idea
3 | .DS_Store
4 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | sudo: false
3 |
4 | matrix:
5 | include:
6 | - go: 1.6
7 | - go: 1.7
8 | - go: 1.8
9 | - go: 1.9
10 | - go: 1.10.x
11 | - go: 1.11.x
12 | - go: 1.12.x
13 | - go: 1.13.x
14 | - go: tip
15 | allow_failures:
16 | - go: tip
17 | before_install:
18 | - go get github.com/mattn/goveralls
19 | script:
20 | - $GOPATH/bin/goveralls -service=travis-ci
21 | - go get -t -v ./...
22 | - diff -u <(echo -n) <(gofmt -d .)
23 | - go vet $(go list ./... | grep -v /vendor/)
24 | - go test -v -race ./...
25 | - go test --bench . --benchmem=true
26 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | ## Must follow the guide for issues
4 | - Use the search tool before opening a new issue.
5 | - Please provide source code and stack trace if you found a bug.
6 | - Please review the existing issues and then provide feedback
7 |
8 | ## Pull Request Process
9 | - Before sending PR, create issue and discuss about the changes
10 | - You MUST send pull requests against `dev` branch
11 | - It should pass all tests in the available continuous integrations systems such as TravisCI.
12 | - You should add/modify tests to cover your proposed code changes.
13 | - If your pull request contains a new feature, please document it on the README.
14 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/LICENSE.md:
--------------------------------------------------------------------------------
1 | # The MIT License (MIT)
2 |
3 | Copyright (c) 2018 Saddam H
4 |
5 | > Permission is hereby granted, free of charge, to any person obtaining a copy
6 | > of this software and associated documentation files (the "Software"), to deal
7 | > in the Software without restriction, including without limitation the rights
8 | > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | > copies of the Software, and to permit persons to whom the Software is
10 | > furnished to do so, subject to the following conditions:
11 | >
12 | > The above copyright notice and this permission notice shall be included in
13 | > all copies or substantial portions of the Software.
14 | >
15 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | > THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/Makefile:
--------------------------------------------------------------------------------
1 | # Makefile includes some useful commands to build or format incentives
2 | # More commands could be added
3 |
4 | # Variables
5 | PROJECT = gojsonq
6 | REPO_ROOT = github.com/thedevsaddam
7 | ROOT = ${REPO_ROOT}/${PROJECT}
8 |
9 | fmt:
10 | goimports -w .
11 | gofmt -s -w .
12 |
13 | compile: fmt
14 | go install .
15 |
16 | check: fmt
17 | golangci-lint run --deadline 10m ./...
18 | staticcheck -checks="all,-S1*" ./...
19 |
20 | dep:
21 | go mod download
22 | go mod vendor
23 | go mod tidy
24 |
25 | # A user can invoke tests in different ways:
26 | # - make test runs all tests;
27 | # - make test TEST_TIMEOUT=10 runs all tests with a timeout of 10 seconds;
28 | # - make test TEST_PKG=./model/... only runs tests for the model package;
29 | # - make test TEST_ARGS="-v -short" runs tests with the specified arguments;
30 | # - make test-race runs tests with race detector enabled.
31 | TEST_TIMEOUT = 60
32 | TEST_PKGS ?= ./...
33 | TEST_TARGETS := test-short test-verbose test-race test-cover
34 | .PHONY: $(TEST_TARGETS) test
35 | test-short: TEST_ARGS=-short
36 | test-verbose: TEST_ARGS=-v
37 | test-race: TEST_ARGS=-race
38 | test-cover: TEST_ARGS=-cover
39 | $(TEST_TARGETS): test
40 |
41 | test: compile
42 | go test -timeout $(TEST_TIMEOUT)s $(TEST_ARGS) $(TEST_PKGS)
43 |
44 | clean:
45 | @go clean
46 |
47 | .PHONY: help
48 | help:
49 | @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | \
50 | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | \
51 | sort | \
52 | egrep -v -e '^[^[:alnum:]]' -e '^$@$$'
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/decoder.go:
--------------------------------------------------------------------------------
1 | package gojsonq
2 |
3 | import "encoding/json"
4 |
5 | // Decoder provide contract to decode JSON using custom decoder
6 | type Decoder interface {
7 | Decode(data []byte, v interface{}) error
8 | }
9 |
10 | // DefaultDecoder use json.Unmarshal to decode JSON
11 | type DefaultDecoder struct{}
12 |
13 | // Decode decodes using json.Unmarshal
14 | func (u *DefaultDecoder) Decode(data []byte, v interface{}) error {
15 | return json.Unmarshal(data, v)
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/doc.go:
--------------------------------------------------------------------------------
1 | // Package gojsonq provides a simple, elegant and fast ODM like API to access/query JSON document.
2 | //
3 | // JSON document can be read from file, string or io.Reader.
4 | // Accessing the value of json property or querying document is simple as the example below:
5 | //
6 | // package main
7 | //
8 | // import "github.com/thedevsaddam/gojsonq"
9 | //
10 | // const json = `{"name":{"first":"Tom","last":"Hanks"},"age":61}`
11 | //
12 | // func main() {
13 | // name := gojsonq.New().FromString(json).Find("name.first")
14 | // println(name.(string)) // Tom
15 | // }
16 | //
17 | // For more details, see the documentation and examples.
18 | //
19 | package gojsonq
20 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/thedevsaddam/gojsonq/v2
2 |
3 | go 1.13
4 |
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/gojsonq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SpectralOps/preflight/53a64db9ad8bd3c6776855a7065e1825eb59012a/vendor/github.com/thedevsaddam/gojsonq/v2/gojsonq.png
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/jetbrains-grayscale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SpectralOps/preflight/53a64db9ad8bd3c6776855a7065e1825eb59012a/vendor/github.com/thedevsaddam/gojsonq/v2/jetbrains-grayscale.png
--------------------------------------------------------------------------------
/vendor/github.com/thedevsaddam/gojsonq/v2/option.go:
--------------------------------------------------------------------------------
1 | package gojsonq
2 |
3 | import "errors"
4 |
5 | // option describes type for providing configuration options to JSONQ
6 | type option struct {
7 | decoder Decoder
8 | separator string
9 | }
10 |
11 | // OptionFunc represents a contract for option func, it basically set options to jsonq instance options
12 | type OptionFunc func(*JSONQ) error
13 |
14 | // SetDecoder take a custom decoder to decode JSON
15 | // Deprecated - use WithDecoder
16 | func SetDecoder(u Decoder) OptionFunc {
17 | return WithDecoder(u)
18 | }
19 |
20 | // SetSeparator set custom separator for traversing child node, default separator is DOT (.)
21 | // Deprecated - use WithSeparator
22 | func SetSeparator(s string) OptionFunc {
23 | return WithSeparator(s)
24 | }
25 |
26 | // WithDecoder take a custom decoder to decode JSON
27 | func WithDecoder(u Decoder) OptionFunc {
28 | return func(j *JSONQ) error {
29 | if u == nil {
30 | return errors.New("decoder can not be nil")
31 | }
32 | j.option.decoder = u
33 | return nil
34 | }
35 | }
36 |
37 | // WithSeparator set custom separator for traversing child node, default separator is DOT (.)
38 | func WithSeparator(s string) OptionFunc {
39 | return func(j *JSONQ) error {
40 | if s == "" {
41 | return errors.New("separator can not be empty")
42 | }
43 | j.option.separator = s
44 | return nil
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 | *.test
24 | *.prof
25 |
26 | #GoLand
27 | .idea
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | before_install:
3 | - go get golang.org/x/tools/cmd/cover
4 | - go get github.com/stretchr/testify
5 | go:
6 | - "1.14"
7 | script: make test
8 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | go-funk changelog
2 | =================
3 |
4 | 0.1 (2017-01-18)
5 | ----------------
6 |
7 | Changes can be seen [here](https://github.com/thoas/go-funk/compare/73b8ae1f6443c9d4acbdc612bbb2ca804bb39b1d...master)
8 |
9 | * Better test suite
10 | * Better documentation
11 | * Add typesafe implementations:
12 |
13 | * ``Contains``
14 | * ``Sum``
15 | * ``Reverse``
16 | * ``IndexOf``
17 | * ``Uniq``
18 | * ``Shuffle``
19 | * Add benchmarks
20 |
21 | * ``Contains``
22 | * ``Uniq``
23 | * ``Sum``
24 | * Fix ``redirectValue`` when using a circular reference
25 | * Add ``Sum`` generic implementation which computes the sum of values in an array
26 | * Add ``Tail`` generic implementation to retrieve all but the first element of array
27 | * Add ``Initial`` generic implementation to retrieve all but the last element of array
28 | * Add ``Last`` generic implementation to retrieve the last element of an array
29 | * Add ``Head`` generic implementation to retrieve the first element of an array
30 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2016 Florent Messa
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/Makefile:
--------------------------------------------------------------------------------
1 | test:
2 | go test -v
3 |
4 | bench:
5 | go test -benchmem -bench .
6 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/compact.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "reflect"
5 | )
6 |
7 | // Compact creates a slice with all empty/zero values removed.
8 | func Compact(value interface{}) interface{} {
9 | arr := redirectValue(reflect.ValueOf(value))
10 |
11 | if arr.Kind() != reflect.Slice && arr.Kind() != reflect.Array {
12 | panic("First parameter must be array or slice")
13 | }
14 |
15 | sliceElemType := sliceElem(arr.Type())
16 | resultSliceType := reflect.SliceOf(sliceElemType)
17 | result := reflect.MakeSlice(resultSliceType, 0, 0)
18 |
19 | for i := 0; i < arr.Len(); i++ {
20 | elemVal := arr.Index(i)
21 |
22 | if elemVal.Kind() == reflect.Interface {
23 | elemVal = elemVal.Elem()
24 | }
25 |
26 | redirectedElemVal := redirectValue(elemVal)
27 |
28 | switch redirectedElemVal.Kind() {
29 | case reflect.Invalid:
30 | continue
31 | case reflect.Func:
32 | if redirectedElemVal.IsNil() {
33 | continue
34 | }
35 | case reflect.Map, reflect.Slice, reflect.Chan:
36 | if redirectedElemVal.Len() == 0 {
37 | continue
38 | }
39 | default:
40 | defaultValue := reflect.Zero(redirectedElemVal.Type()).Interface()
41 | if redirectedElemVal.Interface() == defaultValue {
42 | continue
43 | }
44 | }
45 |
46 | result = reflect.Append(result, elemVal)
47 | }
48 |
49 | return result.Interface()
50 | }
51 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/fill.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "errors"
5 | "fmt"
6 | "reflect"
7 | )
8 |
9 | // Fill fills elements of array with value
10 | func Fill(in interface{}, fillValue interface{}) (interface{}, error) {
11 | inValue := reflect.ValueOf(in)
12 | inKind := inValue.Type().Kind()
13 | if inKind != reflect.Slice && inKind != reflect.Array {
14 | return nil, errors.New("Can only fill slices and arrays")
15 | }
16 |
17 | inType := reflect.TypeOf(in).Elem()
18 | value := reflect.ValueOf(fillValue)
19 | if inType != value.Type() {
20 | return nil, fmt.Errorf(
21 | "Cannot fill '%s' with '%s'", reflect.TypeOf(in), value.Type(),
22 | )
23 | }
24 |
25 | length := inValue.Len()
26 | newSlice := reflect.SliceOf(reflect.TypeOf(fillValue))
27 | in = reflect.MakeSlice(newSlice, length, length).Interface()
28 | inValue = reflect.ValueOf(in)
29 |
30 | for i := 0; i < length; i++ {
31 | inValue.Index(i).Set(value)
32 | }
33 | return in, nil
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/thoas/go-funk
2 |
3 | go 1.13
4 |
5 | require github.com/stretchr/testify v1.4.0
6 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/go.sum:
--------------------------------------------------------------------------------
1 | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6 | github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
7 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
8 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
9 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
10 | gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
11 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
12 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/map.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "fmt"
5 | "reflect"
6 | )
7 |
8 | // Keys creates an array of the own enumerable map keys or struct field names.
9 | func Keys(out interface{}) interface{} {
10 | value := redirectValue(reflect.ValueOf(out))
11 | valueType := value.Type()
12 |
13 | if value.Kind() == reflect.Map {
14 | keys := value.MapKeys()
15 |
16 | length := len(keys)
17 |
18 | resultSlice := reflect.MakeSlice(reflect.SliceOf(valueType.Key()), length, length)
19 |
20 | for i, key := range keys {
21 | resultSlice.Index(i).Set(key)
22 | }
23 |
24 | return resultSlice.Interface()
25 | }
26 |
27 | if value.Kind() == reflect.Struct {
28 | length := value.NumField()
29 |
30 | resultSlice := make([]string, length)
31 |
32 | for i := 0; i < length; i++ {
33 | resultSlice[i] = valueType.Field(i).Name
34 | }
35 |
36 | return resultSlice
37 | }
38 |
39 | panic(fmt.Sprintf("Type %s is not supported by Keys", valueType.String()))
40 | }
41 |
42 | // Values creates an array of the own enumerable map values or struct field values.
43 | func Values(out interface{}) interface{} {
44 | value := redirectValue(reflect.ValueOf(out))
45 | valueType := value.Type()
46 |
47 | if value.Kind() == reflect.Map {
48 | keys := value.MapKeys()
49 |
50 | length := len(keys)
51 |
52 | resultSlice := reflect.MakeSlice(reflect.SliceOf(valueType.Elem()), length, length)
53 |
54 | for i, key := range keys {
55 | resultSlice.Index(i).Set(value.MapIndex(key))
56 | }
57 |
58 | return resultSlice.Interface()
59 | }
60 |
61 | if value.Kind() == reflect.Struct {
62 | length := value.NumField()
63 |
64 | resultSlice := make([]interface{}, length)
65 |
66 | for i := 0; i < length; i++ {
67 | resultSlice[i] = value.Field(i).Interface()
68 | }
69 |
70 | return resultSlice
71 | }
72 |
73 | panic(fmt.Sprintf("Type %s is not supported by Keys", valueType.String()))
74 | }
75 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/operation.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "fmt"
5 | "reflect"
6 | )
7 |
8 | func calculate(arr interface{}, name string, operation rune) float64 {
9 | value := redirectValue(reflect.ValueOf(arr))
10 | valueType := value.Type()
11 |
12 | kind := value.Kind()
13 |
14 | if kind == reflect.Array || kind == reflect.Slice {
15 | length := value.Len()
16 |
17 | if length == 0 {
18 | return 0
19 | }
20 |
21 | result := map[rune]float64{
22 | '+': 0.0,
23 | '*': 1,
24 | }[operation]
25 |
26 | for i := 0; i < length; i++ {
27 | elem := redirectValue(value.Index(i)).Interface()
28 |
29 | var value float64
30 | switch e := elem.(type) {
31 | case int:
32 | value = float64(e)
33 | case int8:
34 | value = float64(e)
35 | case int16:
36 | value = float64(e)
37 | case int32:
38 | value = float64(e)
39 | case int64:
40 | value = float64(e)
41 | case float32:
42 | value = float64(e)
43 | case float64:
44 | value = e
45 | }
46 |
47 | switch operation {
48 | case '+':
49 | result += value
50 | case '*':
51 | result *= value
52 | }
53 | }
54 |
55 | return result
56 | }
57 |
58 | panic(fmt.Sprintf("Type %s is not supported by %s", valueType.String(), name))
59 | }
60 |
61 | // Sum computes the sum of the values in array.
62 | func Sum(arr interface{}) float64 {
63 | return calculate(arr, "Sum", '+')
64 | }
65 |
66 | // Product computes the product of the values in array.
67 | func Product(arr interface{}) float64 {
68 | return calculate(arr, "Product", '*')
69 | }
70 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/permutation.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import "errors"
4 |
5 | // NextPermutation Implement next permutation,
6 | // which rearranges numbers into the lexicographically next greater permutation of numbers.
7 | func NextPermutation(nums []int) error {
8 | n := len(nums)
9 | if n == 0 {
10 | return errors.New("nums is empty")
11 | }
12 |
13 | i := n - 2
14 |
15 | for i >= 0 && nums[i] >= nums[i+1] {
16 | i--
17 | }
18 |
19 | if i >= 0 {
20 | j := n - 1
21 | for j >= 0 && nums[i] >= nums[j] {
22 | j--
23 | }
24 | nums[i], nums[j] = nums[j], nums[i]
25 | }
26 |
27 | ReverseInt(nums[i+1:])
28 | return nil
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/predicate.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "reflect"
5 | )
6 |
7 | // predicatesImpl contains the common implementation of AnyPredicates and AllPredicates.
8 | func predicatesImpl(value interface{}, wantedAnswer bool, predicates interface{}) bool {
9 | if !IsCollection(predicates) {
10 | panic("Predicates parameter must be an iteratee")
11 | }
12 |
13 | predicatesValue := reflect.ValueOf(predicates)
14 | inputValue := reflect.ValueOf(value)
15 |
16 | for i := 0; i < predicatesValue.Len(); i++ {
17 | funcValue := predicatesValue.Index(i)
18 | if !IsFunction(funcValue.Interface()) {
19 | panic("Got non function as predicate")
20 | }
21 |
22 | funcType := funcValue.Type()
23 | if !IsPredicate(funcValue.Interface()) {
24 | panic("Predicate function must have 1 parameter and must return boolean")
25 | }
26 |
27 | if !inputValue.Type().ConvertibleTo(funcType.In(0)) {
28 | panic("Given value is not compatible with type of parameter for the predicate.")
29 | }
30 | if result := funcValue.Call([]reflect.Value{inputValue}); wantedAnswer == result[0].Bool() {
31 | return wantedAnswer
32 | }
33 | }
34 |
35 | return !wantedAnswer
36 | }
37 |
38 | // AnyPredicates gets a value and a series of predicates, and return true if at least one of the predicates
39 | // is true.
40 | func AnyPredicates(value interface{}, predicates interface{}) bool {
41 | return predicatesImpl(value, true, predicates)
42 | }
43 |
44 | // AllPredicates gets a value and a series of predicates, and return true if all of the predicates are true.
45 | func AllPredicates(value interface{}, predicates interface{}) bool {
46 | return predicatesImpl(value, false, predicates)
47 | }
48 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/short_if.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | func ShortIf(condition bool, a interface{}, b interface{}) interface{} {
4 | if condition {
5 | return a
6 | }
7 | return b
8 | }
9 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/subset.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "reflect"
5 | )
6 |
7 | // Subset returns true if collection x is a subset of y.
8 | func Subset(x interface{}, y interface{}) bool {
9 | if !IsCollection(x) {
10 | panic("First parameter must be a collection")
11 | }
12 | if !IsCollection(y) {
13 | panic("Second parameter must be a collection")
14 | }
15 |
16 | xValue := reflect.ValueOf(x)
17 | xType := xValue.Type()
18 |
19 | yValue := reflect.ValueOf(y)
20 | yType := yValue.Type()
21 |
22 | if NotEqual(xType, yType) {
23 | panic("Parameters must have the same type")
24 | }
25 |
26 | if xValue.Len() == 0 {
27 | return true
28 | }
29 |
30 | if yValue.Len() == 0 || yValue.Len() < xValue.Len() {
31 | return false
32 | }
33 |
34 | for i := 0; i < xValue.Len(); i++ {
35 | if !Contains(yValue.Interface(), xValue.Index(i).Interface()) {
36 | return false
37 | }
38 | }
39 |
40 | return true
41 | }
42 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/subtraction.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "reflect"
5 | )
6 |
7 | // Subtract returns the subtraction between two collections.
8 | func Subtract(x interface{}, y interface{}) interface{} {
9 | if !IsCollection(x) {
10 | panic("First parameter must be a collection")
11 | }
12 | if !IsCollection(y) {
13 | panic("Second parameter must be a collection")
14 | }
15 |
16 | hash := map[interface{}]struct{}{}
17 |
18 | xValue := reflect.ValueOf(x)
19 | xType := xValue.Type()
20 |
21 | yValue := reflect.ValueOf(y)
22 | yType := yValue.Type()
23 |
24 | if NotEqual(xType, yType) {
25 | panic("Parameters must have the same type")
26 | }
27 |
28 | zType := reflect.SliceOf(xType.Elem())
29 | zSlice := reflect.MakeSlice(zType, 0, 0)
30 |
31 | for i := 0; i < xValue.Len(); i++ {
32 | v := xValue.Index(i).Interface()
33 | hash[v] = struct{}{}
34 | }
35 |
36 | for i := 0; i < yValue.Len(); i++ {
37 | v := yValue.Index(i).Interface()
38 | _, ok := hash[v]
39 | if ok {
40 | delete(hash, v)
41 | }
42 | }
43 |
44 | for i := 0; i < xValue.Len(); i++ {
45 | v := xValue.Index(i).Interface()
46 | _, ok := hash[v]
47 | if ok {
48 | zSlice = reflect.Append(zSlice, xValue.Index(i))
49 | }
50 | }
51 |
52 | return zSlice.Interface()
53 | }
54 |
55 | // SubtractString returns the subtraction between two collections of string
56 | func SubtractString(x []string, y []string) []string {
57 | if len(x) == 0 {
58 | return []string{}
59 | }
60 |
61 | if len(y) == 0 {
62 | return x
63 | }
64 |
65 | slice := []string{}
66 | hash := map[string]struct{}{}
67 |
68 | for _, v := range x {
69 | hash[v] = struct{}{}
70 | }
71 |
72 | for _, v := range y {
73 | _, ok := hash[v]
74 | if ok {
75 | delete(hash, v)
76 | }
77 | }
78 |
79 | for _, v := range x {
80 | _, ok := hash[v]
81 | if ok {
82 | slice = append(slice, v)
83 | }
84 | }
85 |
86 | return slice
87 | }
88 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/without.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import "reflect"
4 |
5 | // Without creates an array excluding all given values.
6 | func Without(in interface{}, values ...interface{}) interface{} {
7 | if !IsCollection(in) {
8 | panic("First parameter must be a collection")
9 | }
10 |
11 | inValue := reflect.ValueOf(in)
12 | for _, value := range values {
13 | if NotEqual(inValue.Type().Elem(), reflect.TypeOf(value)) {
14 | panic("Values must have the same type")
15 | }
16 | }
17 |
18 | return LeftJoin(inValue, reflect.ValueOf(values)).Interface()
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/github.com/thoas/go-funk/zip.go:
--------------------------------------------------------------------------------
1 | package funk
2 |
3 | import (
4 | "reflect"
5 | )
6 |
7 | // Tuple is the return type of Zip
8 | type Tuple struct {
9 | Element1 interface{}
10 | Element2 interface{}
11 | }
12 |
13 | // Zip returns a list of tuples, where the i-th tuple contains the i-th element
14 | // from each of the input iterables. The returned list is truncated in length
15 | // to the length of the shortest input iterable.
16 | func Zip(slice1 interface{}, slice2 interface{}) []Tuple {
17 | inValue1 := reflect.ValueOf(slice1)
18 | inValue2 := reflect.ValueOf(slice2)
19 | kind1 := inValue1.Type().Kind()
20 | kind2 := inValue2.Type().Kind()
21 |
22 | result := []Tuple{}
23 | for _, kind := range []reflect.Kind{kind1, kind2} {
24 | if kind != reflect.Slice && kind != reflect.Array {
25 | return result
26 | }
27 | }
28 |
29 | var minLength int
30 | length1 := inValue1.Len()
31 | length2 := inValue2.Len()
32 | if length1 <= length2 {
33 | minLength = length1
34 | } else {
35 | minLength = length2
36 | }
37 |
38 | for i := 0; i < minLength; i++ {
39 | newTuple := Tuple{
40 | Element1: inValue1.Index(i).Interface(),
41 | Element2: inValue2.Index(i).Interface(),
42 | }
43 | result = append(result, newTuple)
44 | }
45 | return result
46 | }
47 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/AUTHORS:
--------------------------------------------------------------------------------
1 | # This source code refers to The Go Authors for copyright purposes.
2 | # The master list of authors is in the main Go distribution,
3 | # visible at http://tip.golang.org/AUTHORS.
4 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/CONTRIBUTORS:
--------------------------------------------------------------------------------
1 | # This source code was written by the Go contributors.
2 | # The master list of contributors is in the main Go distribution,
3 | # visible at http://tip.golang.org/CONTRIBUTORS.
4 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009 The Go Authors. All rights reserved.
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions are
5 | met:
6 |
7 | * Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 | * Redistributions in binary form must reproduce the above
10 | copyright notice, this list of conditions and the following disclaimer
11 | in the documentation and/or other materials provided with the
12 | distribution.
13 | * Neither the name of Google Inc. nor the names of its
14 | contributors may be used to endorse or promote products derived from
15 | this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/PATENTS:
--------------------------------------------------------------------------------
1 | Additional IP Rights Grant (Patents)
2 |
3 | "This implementation" means the copyrightable works distributed by
4 | Google as part of the Go project.
5 |
6 | Google hereby grants to You a perpetual, worldwide, non-exclusive,
7 | no-charge, royalty-free, irrevocable (except as stated in this section)
8 | patent license to make, have made, use, offer to sell, sell, import,
9 | transfer and otherwise run, modify and propagate the contents of this
10 | implementation of Go, where such license applies only to those patent
11 | claims, both currently owned or controlled by Google and acquired in
12 | the future, licensable by Google that are necessarily infringed by this
13 | implementation of Go. This grant does not include claims that would be
14 | infringed only as a consequence of further modification of this
15 | implementation. If you or your agent or exclusive licensee institute or
16 | order or agree to the institution of patent litigation against any
17 | entity (including a cross-claim or counterclaim in a lawsuit) alleging
18 | that this implementation of Go or any code incorporated within this
19 | implementation of Go constitutes direct or contributory patent
20 | infringement, or inducement of patent infringement, then any patent
21 | rights granted to you under this License for this implementation of Go
22 | shall terminate as of the date such litigation is filed.
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Package unsafeheader contains header declarations for the Go runtime's
6 | // slice and string implementations.
7 | //
8 | // This package allows x/sys to use types equivalent to
9 | // reflect.SliceHeader and reflect.StringHeader without introducing
10 | // a dependency on the (relatively heavy) "reflect" package.
11 | package unsafeheader
12 |
13 | import (
14 | "unsafe"
15 | )
16 |
17 | // Slice is the runtime representation of a slice.
18 | // It cannot be used safely or portably and its representation may change in a later release.
19 | type Slice struct {
20 | Data unsafe.Pointer
21 | Len int
22 | Cap int
23 | }
24 |
25 | // String is the runtime representation of a string.
26 | // It cannot be used safely or portably and its representation may change in a later release.
27 | type String struct {
28 | Data unsafe.Pointer
29 | Len int
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/.gitignore:
--------------------------------------------------------------------------------
1 | _obj/
2 | unix.test
3 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/aliases.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9
6 | // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
7 | // +build go1.9
8 |
9 | package unix
10 |
11 | import "syscall"
12 |
13 | type Signal = syscall.Signal
14 | type Errno = syscall.Errno
15 | type SysProcAttr = syscall.SysProcAttr
16 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for ppc64, AIX are implemented in runtime/syscall_aix.go
11 | //
12 |
13 | TEXT ·syscall6(SB),NOSPLIT,$0-88
14 | JMP syscall·syscall6(SB)
15 |
16 | TEXT ·rawSyscall6(SB),NOSPLIT,$0-88
17 | JMP syscall·rawSyscall6(SB)
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, Darwin
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, Darwin
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 | // +build arm,darwin
7 |
8 | #include "textflag.h"
9 |
10 | //
11 | // System call support for ARM, Darwin
12 | //
13 |
14 | // Just jump to package syscall's implementation for all these functions.
15 | // The runtime may know about them.
16 |
17 | TEXT ·Syscall(SB),NOSPLIT,$0-28
18 | B syscall·Syscall(SB)
19 |
20 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
21 | B syscall·Syscall6(SB)
22 |
23 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
24 | B syscall·Syscall9(SB)
25 |
26 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
27 | B syscall·RawSyscall(SB)
28 |
29 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
30 | B syscall·RawSyscall6(SB)
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 | // +build arm64,darwin
7 |
8 | #include "textflag.h"
9 |
10 | //
11 | // System call support for AMD64, Darwin
12 | //
13 |
14 | // Just jump to package syscall's implementation for all these functions.
15 | // The runtime may know about them.
16 |
17 | TEXT ·Syscall(SB),NOSPLIT,$0-56
18 | B syscall·Syscall(SB)
19 |
20 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
21 | B syscall·Syscall6(SB)
22 |
23 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
24 | B syscall·Syscall9(SB)
25 |
26 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
27 | B syscall·RawSyscall(SB)
28 |
29 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
30 | B syscall·RawSyscall6(SB)
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, DragonFly
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM64, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for 386, Linux
11 | //
12 |
13 | // See ../runtime/sys_linux_386.s for the reason why we always use int 0x80
14 | // instead of the glibc-specific "CALL 0x10(GS)".
15 | #define INVOKE_SYSCALL INT $0x80
16 |
17 | // Just jump to package syscall's implementation for all these functions.
18 | // The runtime may know about them.
19 |
20 | TEXT ·Syscall(SB),NOSPLIT,$0-28
21 | JMP syscall·Syscall(SB)
22 |
23 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
24 | JMP syscall·Syscall6(SB)
25 |
26 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
27 | CALL runtime·entersyscall(SB)
28 | MOVL trap+0(FP), AX // syscall entry
29 | MOVL a1+4(FP), BX
30 | MOVL a2+8(FP), CX
31 | MOVL a3+12(FP), DX
32 | MOVL $0, SI
33 | MOVL $0, DI
34 | INVOKE_SYSCALL
35 | MOVL AX, r1+16(FP)
36 | MOVL DX, r2+20(FP)
37 | CALL runtime·exitsyscall(SB)
38 | RET
39 |
40 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
41 | JMP syscall·RawSyscall(SB)
42 |
43 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
44 | JMP syscall·RawSyscall6(SB)
45 |
46 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
47 | MOVL trap+0(FP), AX // syscall entry
48 | MOVL a1+4(FP), BX
49 | MOVL a2+8(FP), CX
50 | MOVL a3+12(FP), DX
51 | MOVL $0, SI
52 | MOVL $0, DI
53 | INVOKE_SYSCALL
54 | MOVL AX, r1+16(FP)
55 | MOVL DX, r2+20(FP)
56 | RET
57 |
58 | TEXT ·socketcall(SB),NOSPLIT,$0-36
59 | JMP syscall·socketcall(SB)
60 |
61 | TEXT ·rawsocketcall(SB),NOSPLIT,$0-36
62 | JMP syscall·rawsocketcall(SB)
63 |
64 | TEXT ·seek(SB),NOSPLIT,$0-28
65 | JMP syscall·seek(SB)
66 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for AMD64, Linux
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
23 | CALL runtime·entersyscall(SB)
24 | MOVQ a1+8(FP), DI
25 | MOVQ a2+16(FP), SI
26 | MOVQ a3+24(FP), DX
27 | MOVQ $0, R10
28 | MOVQ $0, R8
29 | MOVQ $0, R9
30 | MOVQ trap+0(FP), AX // syscall entry
31 | SYSCALL
32 | MOVQ AX, r1+32(FP)
33 | MOVQ DX, r2+40(FP)
34 | CALL runtime·exitsyscall(SB)
35 | RET
36 |
37 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
38 | JMP syscall·RawSyscall(SB)
39 |
40 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
41 | JMP syscall·RawSyscall6(SB)
42 |
43 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
44 | MOVQ a1+8(FP), DI
45 | MOVQ a2+16(FP), SI
46 | MOVQ a3+24(FP), DX
47 | MOVQ $0, R10
48 | MOVQ $0, R8
49 | MOVQ $0, R9
50 | MOVQ trap+0(FP), AX // syscall entry
51 | SYSCALL
52 | MOVQ AX, r1+32(FP)
53 | MOVQ DX, r2+40(FP)
54 | RET
55 |
56 | TEXT ·gettimeofday(SB),NOSPLIT,$0-16
57 | JMP syscall·gettimeofday(SB)
58 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for arm, Linux
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
23 | BL runtime·entersyscall(SB)
24 | MOVW trap+0(FP), R7
25 | MOVW a1+4(FP), R0
26 | MOVW a2+8(FP), R1
27 | MOVW a3+12(FP), R2
28 | MOVW $0, R3
29 | MOVW $0, R4
30 | MOVW $0, R5
31 | SWI $0
32 | MOVW R0, r1+16(FP)
33 | MOVW $0, R0
34 | MOVW R0, r2+20(FP)
35 | BL runtime·exitsyscall(SB)
36 | RET
37 |
38 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
39 | B syscall·RawSyscall(SB)
40 |
41 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
42 | B syscall·RawSyscall6(SB)
43 |
44 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
45 | MOVW trap+0(FP), R7 // syscall entry
46 | MOVW a1+4(FP), R0
47 | MOVW a2+8(FP), R1
48 | MOVW a3+12(FP), R2
49 | SWI $0
50 | MOVW R0, r1+16(FP)
51 | MOVW $0, R0
52 | MOVW R0, r2+20(FP)
53 | RET
54 |
55 | TEXT ·seek(SB),NOSPLIT,$0-28
56 | B syscall·seek(SB)
57 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build linux
6 | // +build arm64
7 | // +build gc
8 |
9 | #include "textflag.h"
10 |
11 | // Just jump to package syscall's implementation for all these functions.
12 | // The runtime may know about them.
13 |
14 | TEXT ·Syscall(SB),NOSPLIT,$0-56
15 | B syscall·Syscall(SB)
16 |
17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
18 | B syscall·Syscall6(SB)
19 |
20 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
21 | BL runtime·entersyscall(SB)
22 | MOVD a1+8(FP), R0
23 | MOVD a2+16(FP), R1
24 | MOVD a3+24(FP), R2
25 | MOVD $0, R3
26 | MOVD $0, R4
27 | MOVD $0, R5
28 | MOVD trap+0(FP), R8 // syscall entry
29 | SVC
30 | MOVD R0, r1+32(FP) // r1
31 | MOVD R1, r2+40(FP) // r2
32 | BL runtime·exitsyscall(SB)
33 | RET
34 |
35 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
36 | B syscall·RawSyscall(SB)
37 |
38 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
39 | B syscall·RawSyscall6(SB)
40 |
41 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
42 | MOVD a1+8(FP), R0
43 | MOVD a2+16(FP), R1
44 | MOVD a3+24(FP), R2
45 | MOVD $0, R3
46 | MOVD $0, R4
47 | MOVD $0, R5
48 | MOVD trap+0(FP), R8 // syscall entry
49 | SVC
50 | MOVD R0, r1+32(FP)
51 | MOVD R1, r2+40(FP)
52 | RET
53 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build linux
6 | // +build mips64 mips64le
7 | // +build gc
8 |
9 | #include "textflag.h"
10 |
11 | //
12 | // System calls for mips64, Linux
13 | //
14 |
15 | // Just jump to package syscall's implementation for all these functions.
16 | // The runtime may know about them.
17 |
18 | TEXT ·Syscall(SB),NOSPLIT,$0-56
19 | JMP syscall·Syscall(SB)
20 |
21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
22 | JMP syscall·Syscall6(SB)
23 |
24 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
25 | JAL runtime·entersyscall(SB)
26 | MOVV a1+8(FP), R4
27 | MOVV a2+16(FP), R5
28 | MOVV a3+24(FP), R6
29 | MOVV R0, R7
30 | MOVV R0, R8
31 | MOVV R0, R9
32 | MOVV trap+0(FP), R2 // syscall entry
33 | SYSCALL
34 | MOVV R2, r1+32(FP)
35 | MOVV R3, r2+40(FP)
36 | JAL runtime·exitsyscall(SB)
37 | RET
38 |
39 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
40 | JMP syscall·RawSyscall(SB)
41 |
42 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
43 | JMP syscall·RawSyscall6(SB)
44 |
45 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
46 | MOVV a1+8(FP), R4
47 | MOVV a2+16(FP), R5
48 | MOVV a3+24(FP), R6
49 | MOVV R0, R7
50 | MOVV R0, R8
51 | MOVV R0, R9
52 | MOVV trap+0(FP), R2 // syscall entry
53 | SYSCALL
54 | MOVV R2, r1+32(FP)
55 | MOVV R3, r2+40(FP)
56 | RET
57 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build linux
6 | // +build mips mipsle
7 | // +build gc
8 |
9 | #include "textflag.h"
10 |
11 | //
12 | // System calls for mips, Linux
13 | //
14 |
15 | // Just jump to package syscall's implementation for all these functions.
16 | // The runtime may know about them.
17 |
18 | TEXT ·Syscall(SB),NOSPLIT,$0-28
19 | JMP syscall·Syscall(SB)
20 |
21 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
22 | JMP syscall·Syscall6(SB)
23 |
24 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
25 | JMP syscall·Syscall9(SB)
26 |
27 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
28 | JAL runtime·entersyscall(SB)
29 | MOVW a1+4(FP), R4
30 | MOVW a2+8(FP), R5
31 | MOVW a3+12(FP), R6
32 | MOVW R0, R7
33 | MOVW trap+0(FP), R2 // syscall entry
34 | SYSCALL
35 | MOVW R2, r1+16(FP) // r1
36 | MOVW R3, r2+20(FP) // r2
37 | JAL runtime·exitsyscall(SB)
38 | RET
39 |
40 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
41 | JMP syscall·RawSyscall(SB)
42 |
43 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
44 | JMP syscall·RawSyscall6(SB)
45 |
46 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
47 | MOVW a1+4(FP), R4
48 | MOVW a2+8(FP), R5
49 | MOVW a3+12(FP), R6
50 | MOVW trap+0(FP), R2 // syscall entry
51 | SYSCALL
52 | MOVW R2, r1+16(FP)
53 | MOVW R3, r2+20(FP)
54 | RET
55 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build linux
6 | // +build ppc64 ppc64le
7 | // +build gc
8 |
9 | #include "textflag.h"
10 |
11 | //
12 | // System calls for ppc64, Linux
13 | //
14 |
15 | // Just jump to package syscall's implementation for all these functions.
16 | // The runtime may know about them.
17 |
18 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
19 | BL runtime·entersyscall(SB)
20 | MOVD a1+8(FP), R3
21 | MOVD a2+16(FP), R4
22 | MOVD a3+24(FP), R5
23 | MOVD R0, R6
24 | MOVD R0, R7
25 | MOVD R0, R8
26 | MOVD trap+0(FP), R9 // syscall entry
27 | SYSCALL R9
28 | MOVD R3, r1+32(FP)
29 | MOVD R4, r2+40(FP)
30 | BL runtime·exitsyscall(SB)
31 | RET
32 |
33 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
34 | MOVD a1+8(FP), R3
35 | MOVD a2+16(FP), R4
36 | MOVD a3+24(FP), R5
37 | MOVD R0, R6
38 | MOVD R0, R7
39 | MOVD R0, R8
40 | MOVD trap+0(FP), R9 // syscall entry
41 | SYSCALL R9
42 | MOVD R3, r1+32(FP)
43 | MOVD R4, r2+40(FP)
44 | RET
45 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build riscv64,gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for linux/riscv64.
11 | //
12 | // Where available, just jump to package syscall's implementation of
13 | // these functions.
14 |
15 | TEXT ·Syscall(SB),NOSPLIT,$0-56
16 | JMP syscall·Syscall(SB)
17 |
18 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
19 | JMP syscall·Syscall6(SB)
20 |
21 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
22 | CALL runtime·entersyscall(SB)
23 | MOV a1+8(FP), A0
24 | MOV a2+16(FP), A1
25 | MOV a3+24(FP), A2
26 | MOV trap+0(FP), A7 // syscall entry
27 | ECALL
28 | MOV A0, r1+32(FP) // r1
29 | MOV A1, r2+40(FP) // r2
30 | CALL runtime·exitsyscall(SB)
31 | RET
32 |
33 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
34 | JMP syscall·RawSyscall(SB)
35 |
36 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
37 | JMP syscall·RawSyscall6(SB)
38 |
39 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
40 | MOV a1+8(FP), A0
41 | MOV a2+16(FP), A1
42 | MOV a3+24(FP), A2
43 | MOV trap+0(FP), A7 // syscall entry
44 | ECALL
45 | MOV A0, r1+32(FP)
46 | MOV A1, r2+40(FP)
47 | RET
48 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_s390x.s:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build s390x
6 | // +build linux
7 | // +build gc
8 |
9 | #include "textflag.h"
10 |
11 | //
12 | // System calls for s390x, Linux
13 | //
14 |
15 | // Just jump to package syscall's implementation for all these functions.
16 | // The runtime may know about them.
17 |
18 | TEXT ·Syscall(SB),NOSPLIT,$0-56
19 | BR syscall·Syscall(SB)
20 |
21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
22 | BR syscall·Syscall6(SB)
23 |
24 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
25 | BL runtime·entersyscall(SB)
26 | MOVD a1+8(FP), R2
27 | MOVD a2+16(FP), R3
28 | MOVD a3+24(FP), R4
29 | MOVD $0, R5
30 | MOVD $0, R6
31 | MOVD $0, R7
32 | MOVD trap+0(FP), R1 // syscall entry
33 | SYSCALL
34 | MOVD R2, r1+32(FP)
35 | MOVD R3, r2+40(FP)
36 | BL runtime·exitsyscall(SB)
37 | RET
38 |
39 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
40 | BR syscall·RawSyscall(SB)
41 |
42 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
43 | BR syscall·RawSyscall6(SB)
44 |
45 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
46 | MOVD a1+8(FP), R2
47 | MOVD a2+16(FP), R3
48 | MOVD a3+24(FP), R4
49 | MOVD $0, R5
50 | MOVD $0, R6
51 | MOVD $0, R7
52 | MOVD trap+0(FP), R1 // syscall entry
53 | SYSCALL
54 | MOVD R2, r1+32(FP)
55 | MOVD R3, r2+40(FP)
56 | RET
57 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM64, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for arm64, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for mips64, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gc
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go
11 | //
12 |
13 | TEXT ·sysvicall6(SB),NOSPLIT,$0-88
14 | JMP syscall·sysvicall6(SB)
15 |
16 | TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88
17 | JMP syscall·rawSysvicall6(SB)
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/bluetooth_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Bluetooth sockets and messages
6 |
7 | package unix
8 |
9 | // Bluetooth Protocols
10 | const (
11 | BTPROTO_L2CAP = 0
12 | BTPROTO_HCI = 1
13 | BTPROTO_SCO = 2
14 | BTPROTO_RFCOMM = 3
15 | BTPROTO_BNEP = 4
16 | BTPROTO_CMTP = 5
17 | BTPROTO_HIDP = 6
18 | BTPROTO_AVDTP = 7
19 | )
20 |
21 | const (
22 | HCI_CHANNEL_RAW = 0
23 | HCI_CHANNEL_USER = 1
24 | HCI_CHANNEL_MONITOR = 2
25 | HCI_CHANNEL_CONTROL = 3
26 | HCI_CHANNEL_LOGGING = 4
27 | )
28 |
29 | // Socketoption Level
30 | const (
31 | SOL_BLUETOOTH = 0x112
32 | SOL_HCI = 0x0
33 | SOL_L2CAP = 0x6
34 | SOL_RFCOMM = 0x12
35 | SOL_SCO = 0x11
36 | )
37 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/constants.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6 | // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
7 |
8 | package unix
9 |
10 | const (
11 | R_OK = 0x4
12 | W_OK = 0x2
13 | X_OK = 0x1
14 | )
15 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_aix_ppc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix && ppc
6 | // +build aix,ppc
7 |
8 | // Functions to access/create device major and minor numbers matching the
9 | // encoding used by AIX.
10 |
11 | package unix
12 |
13 | // Major returns the major component of a Linux device number.
14 | func Major(dev uint64) uint32 {
15 | return uint32((dev >> 16) & 0xffff)
16 | }
17 |
18 | // Minor returns the minor component of a Linux device number.
19 | func Minor(dev uint64) uint32 {
20 | return uint32(dev & 0xffff)
21 | }
22 |
23 | // Mkdev returns a Linux device number generated from the given major and minor
24 | // components.
25 | func Mkdev(major, minor uint32) uint64 {
26 | return uint64(((major) << 16) | (minor))
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix && ppc64
6 | // +build aix,ppc64
7 |
8 | // Functions to access/create device major and minor numbers matching the
9 | // encoding used AIX.
10 |
11 | package unix
12 |
13 | // Major returns the major component of a Linux device number.
14 | func Major(dev uint64) uint32 {
15 | return uint32((dev & 0x3fffffff00000000) >> 32)
16 | }
17 |
18 | // Minor returns the minor component of a Linux device number.
19 | func Minor(dev uint64) uint32 {
20 | return uint32((dev & 0x00000000ffffffff) >> 0)
21 | }
22 |
23 | // Mkdev returns a Linux device number generated from the given major and minor
24 | // components.
25 | func Mkdev(major, minor uint32) uint64 {
26 | var DEVNO64 uint64
27 | DEVNO64 = 0x8000000000000000
28 | return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in Darwin's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of a Darwin device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev >> 24) & 0xff)
13 | }
14 |
15 | // Minor returns the minor component of a Darwin device number.
16 | func Minor(dev uint64) uint32 {
17 | return uint32(dev & 0xffffff)
18 | }
19 |
20 | // Mkdev returns a Darwin device number generated from the given major and minor
21 | // components.
22 | func Mkdev(major, minor uint32) uint64 {
23 | return (uint64(major) << 24) | uint64(minor)
24 | }
25 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_dragonfly.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in Dragonfly's sys/types.h header.
7 | //
8 | // The information below is extracted and adapted from sys/types.h:
9 | //
10 | // Minor gives a cookie instead of an index since in order to avoid changing the
11 | // meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
12 | // devices that don't use them.
13 |
14 | package unix
15 |
16 | // Major returns the major component of a DragonFlyBSD device number.
17 | func Major(dev uint64) uint32 {
18 | return uint32((dev >> 8) & 0xff)
19 | }
20 |
21 | // Minor returns the minor component of a DragonFlyBSD device number.
22 | func Minor(dev uint64) uint32 {
23 | return uint32(dev & 0xffff00ff)
24 | }
25 |
26 | // Mkdev returns a DragonFlyBSD device number generated from the given major and
27 | // minor components.
28 | func Mkdev(major, minor uint32) uint64 {
29 | return (uint64(major) << 8) | uint64(minor)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_freebsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in FreeBSD's sys/types.h header.
7 | //
8 | // The information below is extracted and adapted from sys/types.h:
9 | //
10 | // Minor gives a cookie instead of an index since in order to avoid changing the
11 | // meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
12 | // devices that don't use them.
13 |
14 | package unix
15 |
16 | // Major returns the major component of a FreeBSD device number.
17 | func Major(dev uint64) uint32 {
18 | return uint32((dev >> 8) & 0xff)
19 | }
20 |
21 | // Minor returns the minor component of a FreeBSD device number.
22 | func Minor(dev uint64) uint32 {
23 | return uint32(dev & 0xffff00ff)
24 | }
25 |
26 | // Mkdev returns a FreeBSD device number generated from the given major and
27 | // minor components.
28 | func Mkdev(major, minor uint32) uint64 {
29 | return (uint64(major) << 8) | uint64(minor)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used by the Linux kernel and glibc.
7 | //
8 | // The information below is extracted and adapted from bits/sysmacros.h in the
9 | // glibc sources:
10 | //
11 | // dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's
12 | // default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major
13 | // number and m is a hex digit of the minor number. This is backward compatible
14 | // with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also
15 | // backward compatible with the Linux kernel, which for some architectures uses
16 | // 32-bit dev_t, encoded as mmmM MMmm.
17 |
18 | package unix
19 |
20 | // Major returns the major component of a Linux device number.
21 | func Major(dev uint64) uint32 {
22 | major := uint32((dev & 0x00000000000fff00) >> 8)
23 | major |= uint32((dev & 0xfffff00000000000) >> 32)
24 | return major
25 | }
26 |
27 | // Minor returns the minor component of a Linux device number.
28 | func Minor(dev uint64) uint32 {
29 | minor := uint32((dev & 0x00000000000000ff) >> 0)
30 | minor |= uint32((dev & 0x00000ffffff00000) >> 12)
31 | return minor
32 | }
33 |
34 | // Mkdev returns a Linux device number generated from the given major and minor
35 | // components.
36 | func Mkdev(major, minor uint32) uint64 {
37 | dev := (uint64(major) & 0x00000fff) << 8
38 | dev |= (uint64(major) & 0xfffff000) << 32
39 | dev |= (uint64(minor) & 0x000000ff) << 0
40 | dev |= (uint64(minor) & 0xffffff00) << 12
41 | return dev
42 | }
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_netbsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in NetBSD's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of a NetBSD device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev & 0x000fff00) >> 8)
13 | }
14 |
15 | // Minor returns the minor component of a NetBSD device number.
16 | func Minor(dev uint64) uint32 {
17 | minor := uint32((dev & 0x000000ff) >> 0)
18 | minor |= uint32((dev & 0xfff00000) >> 12)
19 | return minor
20 | }
21 |
22 | // Mkdev returns a NetBSD device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | dev := (uint64(major) << 8) & 0x000fff00
26 | dev |= (uint64(minor) << 12) & 0xfff00000
27 | dev |= (uint64(minor) << 0) & 0x000000ff
28 | return dev
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_openbsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in OpenBSD's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of an OpenBSD device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev & 0x0000ff00) >> 8)
13 | }
14 |
15 | // Minor returns the minor component of an OpenBSD device number.
16 | func Minor(dev uint64) uint32 {
17 | minor := uint32((dev & 0x000000ff) >> 0)
18 | minor |= uint32((dev & 0xffff0000) >> 8)
19 | return minor
20 | }
21 |
22 | // Mkdev returns an OpenBSD device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | dev := (uint64(major) << 8) & 0x0000ff00
26 | dev |= (uint64(minor) << 8) & 0xffff0000
27 | dev |= (uint64(minor) << 0) & 0x000000ff
28 | return dev
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_zos.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build zos && s390x
6 | // +build zos,s390x
7 |
8 | // Functions to access/create device major and minor numbers matching the
9 | // encoding used by z/OS.
10 | //
11 | // The information below is extracted and adapted from macros.
12 |
13 | package unix
14 |
15 | // Major returns the major component of a z/OS device number.
16 | func Major(dev uint64) uint32 {
17 | return uint32((dev >> 16) & 0x0000FFFF)
18 | }
19 |
20 | // Minor returns the minor component of a z/OS device number.
21 | func Minor(dev uint64) uint32 {
22 | return uint32(dev & 0x0000FFFF)
23 | }
24 |
25 | // Mkdev returns a z/OS device number generated from the given major and minor
26 | // components.
27 | func Mkdev(major, minor uint32) uint64 {
28 | return (uint64(major) << 16) | uint64(minor)
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/endian_big.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 | //
5 | //go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64
6 | // +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64
7 |
8 | package unix
9 |
10 | const isBigEndian = true
11 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/endian_little.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 | //
5 | //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh
6 | // +build 386 amd64 amd64p32 alpha arm arm64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh
7 |
8 | package unix
9 |
10 | const isBigEndian = false
11 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/env_unix.go:
--------------------------------------------------------------------------------
1 | // Copyright 2010 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
6 | // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
7 |
8 | // Unix environment variables.
9 |
10 | package unix
11 |
12 | import "syscall"
13 |
14 | func Getenv(key string) (value string, found bool) {
15 | return syscall.Getenv(key)
16 | }
17 |
18 | func Setenv(key, value string) error {
19 | return syscall.Setenv(key, value)
20 | }
21 |
22 | func Clearenv() {
23 | syscall.Clearenv()
24 | }
25 |
26 | func Environ() []string {
27 | return syscall.Environ()
28 | }
29 |
30 | func Unsetenv(key string) error {
31 | return syscall.Unsetenv(key)
32 | }
33 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
6 | // them here for backwards compatibility.
7 |
8 | package unix
9 |
10 | const (
11 | DLT_HHDLC = 0x79
12 | IPV6_MIN_MEMBERSHIPS = 0x1f
13 | IP_MAX_SOURCE_FILTER = 0x400
14 | IP_MIN_MEMBERSHIPS = 0x1f
15 | RT_CACHING_CONTEXT = 0x1
16 | RT_NORTREF = 0x2
17 | )
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build dragonfly || freebsd || linux || netbsd || openbsd
6 | // +build dragonfly freebsd linux netbsd openbsd
7 |
8 | package unix
9 |
10 | import "unsafe"
11 |
12 | // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux
13 | // systems by fcntl_linux_32bit.go to be SYS_FCNTL64.
14 | var fcntl64Syscall uintptr = SYS_FCNTL
15 |
16 | func fcntl(fd int, cmd, arg int) (int, error) {
17 | valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))
18 | var err error
19 | if errno != 0 {
20 | err = errno
21 | }
22 | return int(valptr), err
23 | }
24 |
25 | // FcntlInt performs a fcntl syscall on fd with the provided command and argument.
26 | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
27 | return fcntl(int(fd), cmd, arg)
28 | }
29 |
30 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
31 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
32 | _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))
33 | if errno == 0 {
34 | return nil
35 | }
36 | return errno
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | import "unsafe"
8 |
9 | // FcntlInt performs a fcntl syscall on fd with the provided command and argument.
10 | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
11 | return fcntl(int(fd), cmd, arg)
12 | }
13 |
14 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
15 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
16 | _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
17 | return err
18 | }
19 |
20 | // FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command.
21 | func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {
22 | _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore))))
23 | return err
24 | }
25 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle)
6 | // +build linux,386 linux,arm linux,mips linux,mipsle
7 |
8 | package unix
9 |
10 | func init() {
11 | // On 32-bit Linux systems, the fcntl syscall that matches Go's
12 | // Flock_t type is SYS_FCNTL64, not SYS_FCNTL.
13 | fcntl64Syscall = SYS_FCNTL64
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fdset.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris
6 | // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
7 |
8 | package unix
9 |
10 | // Set adds fd to the set fds.
11 | func (fds *FdSet) Set(fd int) {
12 | fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))
13 | }
14 |
15 | // Clear removes fd from the set fds.
16 | func (fds *FdSet) Clear(fd int) {
17 | fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))
18 | }
19 |
20 | // IsSet returns whether fd is in the set fds.
21 | func (fds *FdSet) IsSet(fd int) bool {
22 | return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0
23 | }
24 |
25 | // Zero clears the set fds.
26 | func (fds *FdSet) Zero() {
27 | for i := range fds.Bits {
28 | fds.Bits[i] = 0
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/gccgo_c.c:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // +build gccgo
6 | // +build !aix
7 |
8 | #include
9 | #include
10 | #include
11 |
12 | #define _STRINGIFY2_(x) #x
13 | #define _STRINGIFY_(x) _STRINGIFY2_(x)
14 | #define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)
15 |
16 | // Call syscall from C code because the gccgo support for calling from
17 | // Go to C does not support varargs functions.
18 |
19 | struct ret {
20 | uintptr_t r;
21 | uintptr_t err;
22 | };
23 |
24 | struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
25 | __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall");
26 |
27 | struct ret
28 | gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
29 | {
30 | struct ret r;
31 |
32 | errno = 0;
33 | r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
34 | r.err = errno;
35 | return r;
36 | }
37 |
38 | uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
39 | __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError");
40 |
41 | uintptr_t
42 | gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
43 | {
44 | return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
45 | }
46 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build gccgo && linux && amd64
6 | // +build gccgo,linux,amd64
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | //extern gettimeofday
13 | func realGettimeofday(*Timeval, *byte) int32
14 |
15 | func gettimeofday(tv *Timeval) (err syscall.Errno) {
16 | r := realGettimeofday(tv, nil)
17 | if r < 0 {
18 | return syscall.GetErrno()
19 | }
20 | return 0
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/pagesize_unix.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris
6 | // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
7 |
8 | // For Unix, get the pagesize from the runtime.
9 |
10 | package unix
11 |
12 | import "syscall"
13 |
14 | func Getpagesize() int {
15 | return syscall.Getpagesize()
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/ptrace_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build darwin && !ios
6 | // +build darwin,!ios
7 |
8 | package unix
9 |
10 | func ptrace(request int, pid int, addr uintptr, data uintptr) error {
11 | return ptrace1(request, pid, addr, data)
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/ptrace_ios.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build ios
6 | // +build ios
7 |
8 | package unix
9 |
10 | func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
11 | return ENOTSUP
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/race.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin && race) || (linux && race) || (freebsd && race)
6 | // +build darwin,race linux,race freebsd,race
7 |
8 | package unix
9 |
10 | import (
11 | "runtime"
12 | "unsafe"
13 | )
14 |
15 | const raceenabled = true
16 |
17 | func raceAcquire(addr unsafe.Pointer) {
18 | runtime.RaceAcquire(addr)
19 | }
20 |
21 | func raceReleaseMerge(addr unsafe.Pointer) {
22 | runtime.RaceReleaseMerge(addr)
23 | }
24 |
25 | func raceReadRange(addr unsafe.Pointer, len int) {
26 | runtime.RaceReadRange(addr, len)
27 | }
28 |
29 | func raceWriteRange(addr unsafe.Pointer, len int) {
30 | runtime.RaceWriteRange(addr, len)
31 | }
32 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/race0.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos
6 | // +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly zos
7 |
8 | package unix
9 |
10 | import (
11 | "unsafe"
12 | )
13 |
14 | const raceenabled = false
15 |
16 | func raceAcquire(addr unsafe.Pointer) {
17 | }
18 |
19 | func raceReleaseMerge(addr unsafe.Pointer) {
20 | }
21 |
22 | func raceReadRange(addr unsafe.Pointer, len int) {
23 | }
24 |
25 | func raceWriteRange(addr unsafe.Pointer, len int) {
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/readdirent_getdents.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || dragonfly || freebsd || linux || netbsd || openbsd
6 | // +build aix dragonfly freebsd linux netbsd openbsd
7 |
8 | package unix
9 |
10 | // ReadDirent reads directory entries from fd and writes them into buf.
11 | func ReadDirent(fd int, buf []byte) (n int, err error) {
12 | return Getdents(fd, buf)
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build darwin
6 | // +build darwin
7 |
8 | package unix
9 |
10 | import "unsafe"
11 |
12 | // ReadDirent reads directory entries from fd and writes them into buf.
13 | func ReadDirent(fd int, buf []byte) (n int, err error) {
14 | // Final argument is (basep *uintptr) and the syscall doesn't take nil.
15 | // 64 bits should be enough. (32 bits isn't even on 386). Since the
16 | // actual system call is getdirentries64, 64 is a good guess.
17 | // TODO(rsc): Can we use a single global basep for all calls?
18 | var base = (*uintptr)(unsafe.Pointer(new(uint64)))
19 | return Getdirentries(fd, buf, base)
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | // Round the length of a raw sockaddr up to align it properly.
8 | func cmsgAlignOf(salen int) int {
9 | salign := SizeofPtr
10 | if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {
11 | // 64-bit Dragonfly before the September 2019 ABI changes still requires
12 | // 32-bit aligned access to network subsystem.
13 | salign = 4
14 | }
15 | return (salen + salign - 1) & ^(salign - 1)
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sockcmsg_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2011 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | // Socket control messages
6 |
7 | package unix
8 |
9 | import "unsafe"
10 |
11 | // UnixCredentials encodes credentials into a socket control message
12 | // for sending to another process. This can be used for
13 | // authentication.
14 | func UnixCredentials(ucred *Ucred) []byte {
15 | b := make([]byte, CmsgSpace(SizeofUcred))
16 | h := (*Cmsghdr)(unsafe.Pointer(&b[0]))
17 | h.Level = SOL_SOCKET
18 | h.Type = SCM_CREDENTIALS
19 | h.SetLen(CmsgLen(SizeofUcred))
20 | *(*Ucred)(h.data(0)) = *ucred
21 | return b
22 | }
23 |
24 | // ParseUnixCredentials decodes a socket control message that contains
25 | // credentials in a Ucred structure. To receive such a message, the
26 | // SO_PASSCRED option must be enabled on the socket.
27 | func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {
28 | if m.Header.Level != SOL_SOCKET {
29 | return nil, EINVAL
30 | }
31 | if m.Header.Type != SCM_CREDENTIALS {
32 | return nil, EINVAL
33 | }
34 | ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))
35 | return &ucred, nil
36 | }
37 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos
6 | // +build aix darwin freebsd linux netbsd openbsd solaris zos
7 |
8 | package unix
9 |
10 | import (
11 | "runtime"
12 | )
13 |
14 | // Round the length of a raw sockaddr up to align it properly.
15 | func cmsgAlignOf(salen int) int {
16 | salign := SizeofPtr
17 |
18 | // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in
19 | // sockcmsg_dragonfly.go
20 | switch runtime.GOOS {
21 | case "aix":
22 | // There is no alignment on AIX.
23 | salign = 1
24 | case "darwin", "ios", "illumos", "solaris":
25 | // NOTE: It seems like 64-bit Darwin, Illumos and Solaris
26 | // kernels still require 32-bit aligned access to network
27 | // subsystem.
28 | if SizeofPtr == 8 {
29 | salign = 4
30 | }
31 | case "netbsd", "openbsd":
32 | // NetBSD and OpenBSD armv7 require 64-bit alignment.
33 | if runtime.GOARCH == "arm" {
34 | salign = 8
35 | }
36 | // NetBSD aarch64 requires 128-bit alignment.
37 | if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" {
38 | salign = 16
39 | }
40 | case "zos":
41 | // z/OS socket macros use [32-bit] sizeof(int) alignment,
42 | // not pointer width.
43 | salign = SizeofInt
44 | }
45 |
46 | return (salen + salign - 1) & ^(salign - 1)
47 | }
48 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/str.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris
6 | // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
7 |
8 | package unix
9 |
10 | func itoa(val int) string { // do it here rather than with fmt to avoid dependency
11 | if val < 0 {
12 | return "-" + uitoa(uint(-val))
13 | }
14 | return uitoa(uint(val))
15 | }
16 |
17 | func uitoa(val uint) string {
18 | var buf [32]byte // big enough for int64
19 | i := len(buf) - 1
20 | for val >= 10 {
21 | buf[i] = byte(val%10 + '0')
22 | i--
23 | val /= 10
24 | }
25 | buf[i] = byte(val + '0')
26 | return string(buf[i:])
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build aix && ppc
6 | // +build aix,ppc
7 |
8 | package unix
9 |
10 | //sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64
11 | //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) = setrlimit64
12 | //sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64
13 |
14 | //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
15 |
16 | func setTimespec(sec, nsec int64) Timespec {
17 | return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
18 | }
19 |
20 | func setTimeval(sec, usec int64) Timeval {
21 | return Timeval{Sec: int32(sec), Usec: int32(usec)}
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint32(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = int32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
40 | func Fstat(fd int, stat *Stat_t) error {
41 | return fstat(fd, stat)
42 | }
43 |
44 | func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {
45 | return fstatat(dirfd, path, stat, flags)
46 | }
47 |
48 | func Lstat(path string, stat *Stat_t) error {
49 | return lstat(path, stat)
50 | }
51 |
52 | func Stat(path string, statptr *Stat_t) error {
53 | return stat(path, statptr)
54 | }
55 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build darwin && go1.12 && !go1.13
6 | // +build darwin,go1.12,!go1.13
7 |
8 | package unix
9 |
10 | import (
11 | "unsafe"
12 | )
13 |
14 | const _SYS_GETDIRENTRIES64 = 344
15 |
16 | func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
17 | // To implement this using libSystem we'd need syscall_syscallPtr for
18 | // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall
19 | // back to raw syscalls for this func on Go 1.12.
20 | var p unsafe.Pointer
21 | if len(buf) > 0 {
22 | p = unsafe.Pointer(&buf[0])
23 | } else {
24 | p = unsafe.Pointer(&_zero)
25 | }
26 | r0, _, e1 := Syscall6(_SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
27 | n = int(r0)
28 | if e1 != 0 {
29 | return n, errnoErr(e1)
30 | }
31 | return n, nil
32 | }
33 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build 386 && darwin
6 | // +build 386,darwin
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | func setTimespec(sec, nsec int64) Timespec {
13 | return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
14 | }
15 |
16 | func setTimeval(sec, usec int64) Timeval {
17 | return Timeval{Sec: int32(sec), Usec: int32(usec)}
18 | }
19 |
20 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
21 | k.Ident = uint32(fd)
22 | k.Filter = int16(mode)
23 | k.Flags = uint16(flags)
24 | }
25 |
26 | func (iov *Iovec) SetLen(length int) {
27 | iov.Len = uint32(length)
28 | }
29 |
30 | func (msghdr *Msghdr) SetControllen(length int) {
31 | msghdr.Controllen = uint32(length)
32 | }
33 |
34 | func (msghdr *Msghdr) SetIovlen(length int) {
35 | msghdr.Iovlen = int32(length)
36 | }
37 |
38 | func (cmsg *Cmsghdr) SetLen(length int) {
39 | cmsg.Len = uint32(length)
40 | }
41 |
42 | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
43 |
44 | //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
45 | //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
46 | //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
47 | //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
48 | //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
49 | //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
50 | //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
51 | //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
52 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && darwin
6 | // +build amd64,darwin
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | func setTimespec(sec, nsec int64) Timespec {
13 | return Timespec{Sec: sec, Nsec: nsec}
14 | }
15 |
16 | func setTimeval(sec, usec int64) Timeval {
17 | return Timeval{Sec: sec, Usec: int32(usec)}
18 | }
19 |
20 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
21 | k.Ident = uint64(fd)
22 | k.Filter = int16(mode)
23 | k.Flags = uint16(flags)
24 | }
25 |
26 | func (iov *Iovec) SetLen(length int) {
27 | iov.Len = uint64(length)
28 | }
29 |
30 | func (msghdr *Msghdr) SetControllen(length int) {
31 | msghdr.Controllen = uint32(length)
32 | }
33 |
34 | func (msghdr *Msghdr) SetIovlen(length int) {
35 | msghdr.Iovlen = int32(length)
36 | }
37 |
38 | func (cmsg *Cmsghdr) SetLen(length int) {
39 | cmsg.Len = uint32(length)
40 | }
41 |
42 | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
43 |
44 | //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
45 | //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
46 | //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
47 | //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
48 | //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
49 | //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
50 | //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
51 | //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
52 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | import "syscall"
8 |
9 | func ptrace1(request int, pid int, addr uintptr, data uintptr) error {
10 | return ENOTSUP
11 | }
12 |
13 | func setTimespec(sec, nsec int64) Timespec {
14 | return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
15 | }
16 |
17 | func setTimeval(sec, usec int64) Timeval {
18 | return Timeval{Sec: int32(sec), Usec: int32(usec)}
19 | }
20 |
21 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
22 | k.Ident = uint32(fd)
23 | k.Filter = int16(mode)
24 | k.Flags = uint16(flags)
25 | }
26 |
27 | func (iov *Iovec) SetLen(length int) {
28 | iov.Len = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetControllen(length int) {
32 | msghdr.Controllen = uint32(length)
33 | }
34 |
35 | func (msghdr *Msghdr) SetIovlen(length int) {
36 | msghdr.Iovlen = int32(length)
37 | }
38 |
39 | func (cmsg *Cmsghdr) SetLen(length int) {
40 | cmsg.Len = uint32(length)
41 | }
42 |
43 | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
44 |
45 | //sys Fstat(fd int, stat *Stat_t) (err error)
46 | //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
47 | //sys Fstatfs(fd int, stat *Statfs_t) (err error)
48 | //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
49 | //sys Lstat(path string, stat *Stat_t) (err error)
50 | //sys Stat(path string, stat *Stat_t) (err error)
51 | //sys Statfs(path string, stat *Statfs_t) (err error)
52 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm64 && darwin
6 | // +build arm64,darwin
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | func setTimespec(sec, nsec int64) Timespec {
13 | return Timespec{Sec: sec, Nsec: nsec}
14 | }
15 |
16 | func setTimeval(sec, usec int64) Timeval {
17 | return Timeval{Sec: sec, Usec: int32(usec)}
18 | }
19 |
20 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
21 | k.Ident = uint64(fd)
22 | k.Filter = int16(mode)
23 | k.Flags = uint16(flags)
24 | }
25 |
26 | func (iov *Iovec) SetLen(length int) {
27 | iov.Len = uint64(length)
28 | }
29 |
30 | func (msghdr *Msghdr) SetControllen(length int) {
31 | msghdr.Controllen = uint32(length)
32 | }
33 |
34 | func (msghdr *Msghdr) SetIovlen(length int) {
35 | msghdr.Iovlen = int32(length)
36 | }
37 |
38 | func (cmsg *Cmsghdr) SetLen(length int) {
39 | cmsg.Len = uint32(length)
40 | }
41 |
42 | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
43 |
44 | //sys Fstat(fd int, stat *Stat_t) (err error)
45 | //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
46 | //sys Fstatfs(fd int, stat *Statfs_t) (err error)
47 | //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
48 | //sys Lstat(path string, stat *Stat_t) (err error)
49 | //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
50 | //sys Stat(path string, stat *Stat_t) (err error)
51 | //sys Statfs(path string, stat *Statfs_t) (err error)
52 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build darwin && go1.12
6 | // +build darwin,go1.12
7 |
8 | package unix
9 |
10 | import "unsafe"
11 |
12 | // Implemented in the runtime package (runtime/sys_darwin.go)
13 | func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
14 | func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
15 | func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
16 | func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only
17 | func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
18 | func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
19 | func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
20 |
21 | //go:linkname syscall_syscall syscall.syscall
22 | //go:linkname syscall_syscall6 syscall.syscall6
23 | //go:linkname syscall_syscall6X syscall.syscall6X
24 | //go:linkname syscall_syscall9 syscall.syscall9
25 | //go:linkname syscall_rawSyscall syscall.rawSyscall
26 | //go:linkname syscall_rawSyscall6 syscall.rawSyscall6
27 | //go:linkname syscall_syscallPtr syscall.syscallPtr
28 |
29 | // Find the entry point for f. See comments in runtime/proc.go for the
30 | // function of the same name.
31 | //go:nosplit
32 | func funcPC(f func()) uintptr {
33 | return **(**uintptr)(unsafe.Pointer(&f))
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && dragonfly
6 | // +build amd64,dragonfly
7 |
8 | package unix
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | func setTimespec(sec, nsec int64) Timespec {
16 | return Timespec{Sec: sec, Nsec: nsec}
17 | }
18 |
19 | func setTimeval(sec, usec int64) Timeval {
20 | return Timeval{Sec: sec, Usec: usec}
21 | }
22 |
23 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
24 | k.Ident = uint64(fd)
25 | k.Filter = int16(mode)
26 | k.Flags = uint16(flags)
27 | }
28 |
29 | func (iov *Iovec) SetLen(length int) {
30 | iov.Len = uint64(length)
31 | }
32 |
33 | func (msghdr *Msghdr) SetControllen(length int) {
34 | msghdr.Controllen = uint32(length)
35 | }
36 |
37 | func (msghdr *Msghdr) SetIovlen(length int) {
38 | msghdr.Iovlen = int32(length)
39 | }
40 |
41 | func (cmsg *Cmsghdr) SetLen(length int) {
42 | cmsg.Len = uint32(length)
43 | }
44 |
45 | func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
46 | var writtenOut uint64 = 0
47 | _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)
48 |
49 | written = int(writtenOut)
50 |
51 | if e1 != 0 {
52 | err = e1
53 | }
54 | return
55 | }
56 |
57 | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
58 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2012 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm && freebsd
6 | // +build arm,freebsd
7 |
8 | package unix
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | func setTimespec(sec, nsec int64) Timespec {
16 | return Timespec{Sec: sec, Nsec: int32(nsec)}
17 | }
18 |
19 | func setTimeval(sec, usec int64) Timeval {
20 | return Timeval{Sec: sec, Usec: int32(usec)}
21 | }
22 |
23 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
24 | k.Ident = uint32(fd)
25 | k.Filter = int16(mode)
26 | k.Flags = uint16(flags)
27 | }
28 |
29 | func (iov *Iovec) SetLen(length int) {
30 | iov.Len = uint32(length)
31 | }
32 |
33 | func (msghdr *Msghdr) SetControllen(length int) {
34 | msghdr.Controllen = uint32(length)
35 | }
36 |
37 | func (msghdr *Msghdr) SetIovlen(length int) {
38 | msghdr.Iovlen = int32(length)
39 | }
40 |
41 | func (cmsg *Cmsghdr) SetLen(length int) {
42 | cmsg.Len = uint32(length)
43 | }
44 |
45 | func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
46 | var writtenOut uint64 = 0
47 | _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)
48 |
49 | written = int(writtenOut)
50 |
51 | if e1 != 0 {
52 | err = e1
53 | }
54 | return
55 | }
56 |
57 | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
58 |
59 | func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
60 | ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
61 | err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
62 | return int(ioDesc.Len), err
63 | }
64 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm64 && freebsd
6 | // +build arm64,freebsd
7 |
8 | package unix
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | func setTimespec(sec, nsec int64) Timespec {
16 | return Timespec{Sec: sec, Nsec: nsec}
17 | }
18 |
19 | func setTimeval(sec, usec int64) Timeval {
20 | return Timeval{Sec: sec, Usec: usec}
21 | }
22 |
23 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
24 | k.Ident = uint64(fd)
25 | k.Filter = int16(mode)
26 | k.Flags = uint16(flags)
27 | }
28 |
29 | func (iov *Iovec) SetLen(length int) {
30 | iov.Len = uint64(length)
31 | }
32 |
33 | func (msghdr *Msghdr) SetControllen(length int) {
34 | msghdr.Controllen = uint32(length)
35 | }
36 |
37 | func (msghdr *Msghdr) SetIovlen(length int) {
38 | msghdr.Iovlen = int32(length)
39 | }
40 |
41 | func (cmsg *Cmsghdr) SetLen(length int) {
42 | cmsg.Len = uint32(length)
43 | }
44 |
45 | func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
46 | var writtenOut uint64 = 0
47 | _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)
48 |
49 | written = int(writtenOut)
50 |
51 | if e1 != 0 {
52 | err = e1
53 | }
54 | return
55 | }
56 |
57 | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
58 |
59 | func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
60 | ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
61 | err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
62 | return int(ioDesc.Len), err
63 | }
64 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && linux && gc
6 | // +build amd64,linux,gc
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | //go:noescape
13 | func gettimeofday(tv *Timeval) (err syscall.Errno)
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gc
6 | // +build linux,gc
7 |
8 | package unix
9 |
10 | // SyscallNoError may be used instead of Syscall for syscalls that don't fail.
11 | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
12 |
13 | // RawSyscallNoError may be used instead of RawSyscall for syscalls that don't
14 | // fail.
15 | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
16 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gc && 386
6 | // +build linux,gc,386
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | // Underlying system call writes to newoffset via pointer.
13 | // Implemented in assembly to avoid allocation.
14 | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
15 |
16 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
17 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm && gc && linux
6 | // +build arm,gc,linux
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | // Underlying system call writes to newoffset via pointer.
13 | // Implemented in assembly to avoid allocation.
14 | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
15 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gccgo && 386
6 | // +build linux,gccgo,386
7 |
8 | package unix
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
16 | var newoffset int64
17 | offsetLow := uint32(offset & 0xffffffff)
18 | offsetHigh := uint32((offset >> 32) & 0xffffffff)
19 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
20 | return newoffset, err
21 | }
22 |
23 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
24 | fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
25 | return int(fd), err
26 | }
27 |
28 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
29 | fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
30 | return int(fd), err
31 | }
32 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && gccgo && arm
6 | // +build linux,gccgo,arm
7 |
8 | package unix
9 |
10 | import (
11 | "syscall"
12 | "unsafe"
13 | )
14 |
15 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
16 | var newoffset int64
17 | offsetLow := uint32(offset & 0xffffffff)
18 | offsetHigh := uint32((offset >> 32) & 0xffffffff)
19 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
20 | return newoffset, err
21 | }
22 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build 386 && netbsd
6 | // +build 386,netbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: int32(nsec)}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: int32(usec)}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint32(fd)
20 | k.Filter = uint32(mode)
21 | k.Flags = uint32(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint32(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = int32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && netbsd
6 | // +build amd64,netbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: nsec}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: int32(usec)}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint64(fd)
20 | k.Filter = uint32(mode)
21 | k.Flags = uint32(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint64(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = int32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm && netbsd
6 | // +build arm,netbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: int32(nsec)}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: int32(usec)}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint32(fd)
20 | k.Filter = uint32(mode)
21 | k.Flags = uint32(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint32(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = int32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm64 && netbsd
6 | // +build arm64,netbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: nsec}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: int32(usec)}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint64(fd)
20 | k.Filter = uint32(mode)
21 | k.Flags = uint32(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint64(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = int32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build 386 && openbsd
6 | // +build 386,openbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: int32(nsec)}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: int32(usec)}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint32(fd)
20 | k.Filter = int16(mode)
21 | k.Flags = uint16(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint32(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = uint32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
40 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
41 | // of openbsd/386 the syscall is called sysctl instead of __sysctl.
42 | const SYS___SYSCTL = SYS_SYSCTL
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && openbsd
6 | // +build amd64,openbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: nsec}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: usec}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint64(fd)
20 | k.Filter = int16(mode)
21 | k.Flags = uint16(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint64(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = uint32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
40 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
41 | // of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
42 | const SYS___SYSCTL = SYS_SYSCTL
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm && openbsd
6 | // +build arm,openbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: int32(nsec)}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: int32(usec)}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint32(fd)
20 | k.Filter = int16(mode)
21 | k.Flags = uint16(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint32(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = uint32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
40 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
41 | // of openbsd/arm the syscall is called sysctl instead of __sysctl.
42 | const SYS___SYSCTL = SYS_SYSCTL
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build arm64 && openbsd
6 | // +build arm64,openbsd
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: nsec}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: usec}
16 | }
17 |
18 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
19 | k.Ident = uint64(fd)
20 | k.Filter = int16(mode)
21 | k.Flags = uint16(flags)
22 | }
23 |
24 | func (iov *Iovec) SetLen(length int) {
25 | iov.Len = uint64(length)
26 | }
27 |
28 | func (msghdr *Msghdr) SetControllen(length int) {
29 | msghdr.Controllen = uint32(length)
30 | }
31 |
32 | func (msghdr *Msghdr) SetIovlen(length int) {
33 | msghdr.Iovlen = uint32(length)
34 | }
35 |
36 | func (cmsg *Cmsghdr) SetLen(length int) {
37 | cmsg.Len = uint32(length)
38 | }
39 |
40 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
41 | // of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
42 | const SYS___SYSCTL = SYS_SYSCTL
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | func setTimespec(sec, nsec int64) Timespec {
8 | return Timespec{Sec: sec, Nsec: nsec}
9 | }
10 |
11 | func setTimeval(sec, usec int64) Timeval {
12 | return Timeval{Sec: sec, Usec: usec}
13 | }
14 |
15 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
16 | k.Ident = uint64(fd)
17 | k.Filter = int16(mode)
18 | k.Flags = uint16(flags)
19 | }
20 |
21 | func (iov *Iovec) SetLen(length int) {
22 | iov.Len = uint64(length)
23 | }
24 |
25 | func (msghdr *Msghdr) SetControllen(length int) {
26 | msghdr.Controllen = uint32(length)
27 | }
28 |
29 | func (cmsg *Cmsghdr) SetLen(length int) {
30 | cmsg.Len = uint32(length)
31 | }
32 |
33 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
34 | // of OpenBSD the syscall is called sysctl instead of __sysctl.
35 | const SYS___SYSCTL = SYS_SYSCTL
36 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build amd64 && solaris
6 | // +build amd64,solaris
7 |
8 | package unix
9 |
10 | func setTimespec(sec, nsec int64) Timespec {
11 | return Timespec{Sec: sec, Nsec: nsec}
12 | }
13 |
14 | func setTimeval(sec, usec int64) Timeval {
15 | return Timeval{Sec: sec, Usec: usec}
16 | }
17 |
18 | func (iov *Iovec) SetLen(length int) {
19 | iov.Len = uint64(length)
20 | }
21 |
22 | func (msghdr *Msghdr) SetIovlen(length int) {
23 | msghdr.Iovlen = int32(length)
24 | }
25 |
26 | func (cmsg *Cmsghdr) SetLen(length int) {
27 | cmsg.Len = uint32(length)
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_unix_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build (darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris) && gc && !ppc64le && !ppc64
6 | // +build darwin dragonfly freebsd linux netbsd openbsd solaris
7 | // +build gc
8 | // +build !ppc64le
9 | // +build !ppc64
10 |
11 | package unix
12 |
13 | import "syscall"
14 |
15 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
16 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
17 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
18 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
19 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | //go:build linux && (ppc64le || ppc64) && gc
6 | // +build linux
7 | // +build ppc64le ppc64
8 | // +build gc
9 |
10 | package unix
11 |
12 | import "syscall"
13 |
14 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
15 | return syscall.Syscall(trap, a1, a2, a3)
16 | }
17 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
18 | return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)
19 | }
20 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
21 | return syscall.RawSyscall(trap, a1, a2, a3)
22 | }
23 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
24 | return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/unveil_openbsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The Go Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package unix
6 |
7 | import (
8 | "syscall"
9 | "unsafe"
10 | )
11 |
12 | // Unveil implements the unveil syscall.
13 | // For more information see unveil(2).
14 | // Note that the special case of blocking further
15 | // unveil calls is handled by UnveilBlock.
16 | func Unveil(path string, flags string) error {
17 | pathPtr, err := syscall.BytePtrFromString(path)
18 | if err != nil {
19 | return err
20 | }
21 | flagsPtr, err := syscall.BytePtrFromString(flags)
22 | if err != nil {
23 | return err
24 | }
25 | _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0)
26 | if e != 0 {
27 | return e
28 | }
29 | return nil
30 | }
31 |
32 | // UnveilBlock blocks future unveil calls.
33 | // For more information see unveil(2).
34 | func UnveilBlock() error {
35 | // Both pointers must be nil.
36 | var pathUnsafe, flagsUnsafe unsafe.Pointer
37 | _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0)
38 | if e != 0 {
39 | return e
40 | }
41 | return nil
42 | }
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go:
--------------------------------------------------------------------------------
1 | // Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT.
2 |
3 | //go:build linux && (arm || arm64)
4 | // +build linux
5 | // +build arm arm64
6 |
7 | package unix
8 |
9 | import "unsafe"
10 |
11 | // PtraceRegsArm is the registers used by arm binaries.
12 | type PtraceRegsArm struct {
13 | Uregs [18]uint32
14 | }
15 |
16 | // PtraceGetRegsArm fetches the registers used by arm binaries.
17 | func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {
18 | return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
19 | }
20 |
21 | // PtraceSetRegsArm sets the registers used by arm binaries.
22 | func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {
23 | return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
24 | }
25 |
26 | // PtraceRegsArm64 is the registers used by arm64 binaries.
27 | type PtraceRegsArm64 struct {
28 | Regs [31]uint64
29 | Sp uint64
30 | Pc uint64
31 | Pstate uint64
32 | }
33 |
34 | // PtraceGetRegsArm64 fetches the registers used by arm64 binaries.
35 | func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {
36 | return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
37 | }
38 |
39 | // PtraceSetRegsArm64 sets the registers used by arm64 binaries.
40 | func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {
41 | return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
42 | }
43 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go:
--------------------------------------------------------------------------------
1 | // Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT.
2 |
3 | package unix
4 |
5 | import "unsafe"
6 |
7 | // PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.
8 | func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {
9 | iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}
10 | return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
11 | }
12 |
13 | // PtraceSetRegSetArm64 sets the registers used by arm64 binaries.
14 | func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {
15 | iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}
16 | return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go:
--------------------------------------------------------------------------------
1 | // Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT.
2 |
3 | //go:build linux && (mips || mips64)
4 | // +build linux
5 | // +build mips mips64
6 |
7 | package unix
8 |
9 | import "unsafe"
10 |
11 | // PtraceRegsMips is the registers used by mips binaries.
12 | type PtraceRegsMips struct {
13 | Regs [32]uint64
14 | Lo uint64
15 | Hi uint64
16 | Epc uint64
17 | Badvaddr uint64
18 | Status uint64
19 | Cause uint64
20 | }
21 |
22 | // PtraceGetRegsMips fetches the registers used by mips binaries.
23 | func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {
24 | return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
25 | }
26 |
27 | // PtraceSetRegsMips sets the registers used by mips binaries.
28 | func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {
29 | return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
30 | }
31 |
32 | // PtraceRegsMips64 is the registers used by mips64 binaries.
33 | type PtraceRegsMips64 struct {
34 | Regs [32]uint64
35 | Lo uint64
36 | Hi uint64
37 | Epc uint64
38 | Badvaddr uint64
39 | Status uint64
40 | Cause uint64
41 | }
42 |
43 | // PtraceGetRegsMips64 fetches the registers used by mips64 binaries.
44 | func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {
45 | return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
46 | }
47 |
48 | // PtraceSetRegsMips64 sets the registers used by mips64 binaries.
49 | func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {
50 | return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
51 | }
52 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go:
--------------------------------------------------------------------------------
1 | // Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT.
2 |
3 | //go:build linux && (mipsle || mips64le)
4 | // +build linux
5 | // +build mipsle mips64le
6 |
7 | package unix
8 |
9 | import "unsafe"
10 |
11 | // PtraceRegsMipsle is the registers used by mipsle binaries.
12 | type PtraceRegsMipsle struct {
13 | Regs [32]uint64
14 | Lo uint64
15 | Hi uint64
16 | Epc uint64
17 | Badvaddr uint64
18 | Status uint64
19 | Cause uint64
20 | }
21 |
22 | // PtraceGetRegsMipsle fetches the registers used by mipsle binaries.
23 | func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error {
24 | return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
25 | }
26 |
27 | // PtraceSetRegsMipsle sets the registers used by mipsle binaries.
28 | func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error {
29 | return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
30 | }
31 |
32 | // PtraceRegsMips64le is the registers used by mips64le binaries.
33 | type PtraceRegsMips64le struct {
34 | Regs [32]uint64
35 | Lo uint64
36 | Hi uint64
37 | Epc uint64
38 | Badvaddr uint64
39 | Status uint64
40 | Cause uint64
41 | }
42 |
43 | // PtraceGetRegsMips64le fetches the registers used by mips64le binaries.
44 | func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error {
45 | return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
46 | }
47 |
48 | // PtraceSetRegsMips64le sets the registers used by mips64le binaries.
49 | func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error {
50 | return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
51 | }
52 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go:
--------------------------------------------------------------------------------
1 | // go run mksyscall.go -l32 -tags darwin,386,go1.13 syscall_darwin.1_13.go
2 | // Code generated by the command above; see README.md. DO NOT EDIT.
3 |
4 | //go:build darwin && 386 && go1.13
5 | // +build darwin,386,go1.13
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | var _ syscall.Errno
15 |
16 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
17 |
18 | func closedir(dir uintptr) (err error) {
19 | _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
20 | if e1 != 0 {
21 | err = errnoErr(e1)
22 | }
23 | return
24 | }
25 |
26 | func libc_closedir_trampoline()
27 |
28 | //go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29 |
30 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31 |
32 | func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 | r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 | res = Errno(r0)
35 | return
36 | }
37 |
38 | func libc_readdir_r_trampoline()
39 |
40 | //go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
41 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go 386
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go:
--------------------------------------------------------------------------------
1 | // go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go
2 | // Code generated by the command above; see README.md. DO NOT EDIT.
3 |
4 | //go:build darwin && amd64 && go1.13
5 | // +build darwin,amd64,go1.13
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | var _ syscall.Errno
15 |
16 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
17 |
18 | func closedir(dir uintptr) (err error) {
19 | _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
20 | if e1 != 0 {
21 | err = errnoErr(e1)
22 | }
23 | return
24 | }
25 |
26 | func libc_closedir_trampoline()
27 |
28 | //go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29 |
30 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31 |
32 | func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 | r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 | res = Errno(r0)
35 | return
36 | }
37 |
38 | func libc_readdir_r_trampoline()
39 |
40 | //go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
41 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go amd64
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go:
--------------------------------------------------------------------------------
1 | // go run mksyscall.go -l32 -tags darwin,arm,go1.13 syscall_darwin.1_13.go
2 | // Code generated by the command above; see README.md. DO NOT EDIT.
3 |
4 | //go:build darwin && arm && go1.13
5 | // +build darwin,arm,go1.13
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | var _ syscall.Errno
15 |
16 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
17 |
18 | func closedir(dir uintptr) (err error) {
19 | _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
20 | if e1 != 0 {
21 | err = errnoErr(e1)
22 | }
23 | return
24 | }
25 |
26 | func libc_closedir_trampoline()
27 |
28 | //go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29 |
30 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31 |
32 | func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 | r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 | res = Errno(r0)
35 | return
36 | }
37 |
38 | func libc_readdir_r_trampoline()
39 |
40 | //go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
41 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go arm
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go:
--------------------------------------------------------------------------------
1 | // go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go
2 | // Code generated by the command above; see README.md. DO NOT EDIT.
3 |
4 | //go:build darwin && arm64 && go1.13
5 | // +build darwin,arm64,go1.13
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | var _ syscall.Errno
15 |
16 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
17 |
18 | func closedir(dir uintptr) (err error) {
19 | _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
20 | if e1 != 0 {
21 | err = errnoErr(e1)
22 | }
23 | return
24 | }
25 |
26 | func libc_closedir_trampoline()
27 |
28 | //go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
29 |
30 | // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
31 |
32 | func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
33 | r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
34 | res = Errno(r0)
35 | return
36 | }
37 |
38 | func libc_readdir_r_trampoline()
39 |
40 | //go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
41 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go arm64
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/modules.txt:
--------------------------------------------------------------------------------
1 | # github.com/VirusTotal/vt-go v0.0.0-20210415081439-66c331640a9d
2 | ## explicit
3 | github.com/VirusTotal/vt-go
4 | # github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38
5 | ## explicit
6 | github.com/alecthomas/assert
7 | # github.com/alecthomas/colour v0.1.0
8 | ## explicit
9 | github.com/alecthomas/colour
10 | # github.com/alecthomas/kong v0.2.15
11 | ## explicit
12 | github.com/alecthomas/kong
13 | # github.com/alecthomas/repr v0.0.0-20210301060118-828286944d6a
14 | ## explicit
15 | github.com/alecthomas/repr
16 | # github.com/fatih/color v1.10.0
17 | ## explicit
18 | github.com/fatih/color
19 | # github.com/kr/pretty v0.2.0
20 | ## explicit
21 | # github.com/mattn/go-colorable v0.1.8
22 | github.com/mattn/go-colorable
23 | # github.com/mattn/go-isatty v0.0.12
24 | github.com/mattn/go-isatty
25 | # github.com/pkg/errors v0.9.1
26 | ## explicit
27 | github.com/pkg/errors
28 | # github.com/sergi/go-diff v1.2.0
29 | ## explicit
30 | github.com/sergi/go-diff/diffmatchpatch
31 | # github.com/thedevsaddam/gojsonq/v2 v2.5.2
32 | github.com/thedevsaddam/gojsonq/v2
33 | # github.com/thoas/go-funk v0.8.0
34 | ## explicit
35 | github.com/thoas/go-funk
36 | # golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46
37 | ## explicit
38 | golang.org/x/sys/internal/unsafeheader
39 | golang.org/x/sys/unix
40 |
--------------------------------------------------------------------------------