mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 18:02:24 +00:00
Dockerfile, build: prebuild and cache dependencies
This commit is contained in:
parent
3ff73d46b3
commit
bf23d41fdc
7 changed files with 592 additions and 13 deletions
12
Dockerfile
12
Dockerfile
|
|
@ -13,6 +13,18 @@ COPY go.mod /go-ethereum/
|
||||||
COPY go.sum /go-ethereum/
|
COPY go.sum /go-ethereum/
|
||||||
RUN cd /go-ethereum && go mod download
|
RUN cd /go-ethereum && go mod download
|
||||||
|
|
||||||
|
# Build all the dependencies in a pre-step to cache them in a docker layer
|
||||||
|
ADD build /go-ethereum/build
|
||||||
|
ADD internal/build /go-ethereum/internal/build
|
||||||
|
|
||||||
|
ADD common /go-ethereum/common
|
||||||
|
ADD crypto/signify /go-ethereum/crypto/signify
|
||||||
|
ADD params /go-ethereum/params
|
||||||
|
|
||||||
|
COPY go.dep /go-ethereum/
|
||||||
|
RUN cd /go-ethereum && go run build/ci.go prebuild --deps build/docker.go.dep --static
|
||||||
|
|
||||||
|
# Finally build go-ethereum itself
|
||||||
ADD . /go-ethereum
|
ADD . /go-ethereum
|
||||||
RUN cd /go-ethereum && go run build/ci.go install -static ./cmd/geth
|
RUN cd /go-ethereum && go run build/ci.go install -static ./cmd/geth
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,17 @@ COPY go.mod /go-ethereum/
|
||||||
COPY go.sum /go-ethereum/
|
COPY go.sum /go-ethereum/
|
||||||
RUN cd /go-ethereum && go mod download
|
RUN cd /go-ethereum && go mod download
|
||||||
|
|
||||||
|
# Build all the dependencies in a pre-step to cache them in a docker layer
|
||||||
|
ADD build /go-ethereum/build
|
||||||
|
ADD internal/build /go-ethereum/internal/build
|
||||||
|
|
||||||
|
ADD common /go-ethereum/common
|
||||||
|
ADD crypto/signify /go-ethereum/crypto/signify
|
||||||
|
ADD params /go-ethereum/params
|
||||||
|
|
||||||
|
COPY go.dep /go-ethereum/
|
||||||
|
RUN cd /go-ethereum && go run build/ci.go prebuild --deps go.dep --static
|
||||||
|
|
||||||
ADD . /go-ethereum
|
ADD . /go-ethereum
|
||||||
|
|
||||||
# This is not strictly necessary, but it matches the "Dockerfile" steps, thus
|
# This is not strictly necessary, but it matches the "Dockerfile" steps, thus
|
||||||
|
|
|
||||||
4
Makefile
4
Makefile
|
|
@ -47,6 +47,10 @@ devtools:
|
||||||
@type "solc" 2> /dev/null || echo 'Please install solc'
|
@type "solc" 2> /dev/null || echo 'Please install solc'
|
||||||
@type "protoc" 2> /dev/null || echo 'Please install protoc'
|
@type "protoc" 2> /dev/null || echo 'Please install protoc'
|
||||||
|
|
||||||
|
#? deplist: Generate a dependent package list for docker
|
||||||
|
deplist:
|
||||||
|
go list -f "{{if and (not .Standard) .DepOnly}}{{.ImportPath}}{{end}}" -deps github.com/ethereum/go-ethereum/... | sort > build/docker.go.dep
|
||||||
|
|
||||||
#? help: Get more info on make commands.
|
#? help: Get more info on make commands.
|
||||||
help: Makefile
|
help: Makefile
|
||||||
@echo ''
|
@echo ''
|
||||||
|
|
|
||||||
71
build/ci.go
71
build/ci.go
|
|
@ -24,6 +24,7 @@ Usage: go run build/ci.go <command> <command flags/arguments>
|
||||||
|
|
||||||
Available commands are:
|
Available commands are:
|
||||||
|
|
||||||
|
prebuild -- pre-builds all dependencies for caching
|
||||||
install [ -arch architecture ] [ -cc compiler ] [ packages... ] -- builds packages and executables
|
install [ -arch architecture ] [ -cc compiler ] [ packages... ] -- builds packages and executables
|
||||||
test [ -coverage ] [ packages... ] -- runs the tests
|
test [ -coverage ] [ packages... ] -- runs the tests
|
||||||
lint -- runs certain pre-selected linters
|
lint -- runs certain pre-selected linters
|
||||||
|
|
@ -38,6 +39,7 @@ For all commands, -n prevents execution of external programs (dry run mode).
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
|
@ -54,7 +56,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/cespare/cp"
|
"github.com/cespare/cp"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
"github.com/ethereum/go-ethereum/crypto/signify"
|
"github.com/ethereum/go-ethereum/crypto/signify"
|
||||||
"github.com/ethereum/go-ethereum/internal/build"
|
"github.com/ethereum/go-ethereum/internal/build"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
|
@ -144,13 +145,15 @@ func executablePath(name string) string {
|
||||||
func main() {
|
func main() {
|
||||||
log.SetFlags(log.Lshortfile)
|
log.SetFlags(log.Lshortfile)
|
||||||
|
|
||||||
if !common.FileExist(filepath.Join("build", "ci.go")) {
|
if !build.FileExist(filepath.Join("build", "ci.go")) {
|
||||||
log.Fatal("this script must be run from the root of the repository")
|
log.Fatal("this script must be run from the root of the repository")
|
||||||
}
|
}
|
||||||
if len(os.Args) < 2 {
|
if len(os.Args) < 2 {
|
||||||
log.Fatal("need subcommand as first argument")
|
log.Fatal("need subcommand as first argument")
|
||||||
}
|
}
|
||||||
switch os.Args[1] {
|
switch os.Args[1] {
|
||||||
|
case "prebuild":
|
||||||
|
doPreBuild(os.Args[2:])
|
||||||
case "install":
|
case "install":
|
||||||
doInstall(os.Args[2:])
|
doInstall(os.Args[2:])
|
||||||
case "test":
|
case "test":
|
||||||
|
|
@ -178,6 +181,51 @@ func main() {
|
||||||
|
|
||||||
// Compiling
|
// Compiling
|
||||||
|
|
||||||
|
func doPreBuild(cmdline []string) {
|
||||||
|
var (
|
||||||
|
depsfile = flag.String("deps", "", "Dependency list to pre-build")
|
||||||
|
staticlink = flag.Bool("static", false, "Pre-build statically-linked dependencies")
|
||||||
|
)
|
||||||
|
flag.CommandLine.Parse(cmdline)
|
||||||
|
env := build.Env()
|
||||||
|
|
||||||
|
// Disable CLI markdown doc generation in release builds.
|
||||||
|
buildTags := []string{"urfave_cli_no_docs"}
|
||||||
|
|
||||||
|
// Enable linking the CKZG library since we can make it work with additional flags.
|
||||||
|
if env.UbuntuVersion != "trusty" {
|
||||||
|
buildTags = append(buildTags, "ckzg")
|
||||||
|
}
|
||||||
|
// Configure the build.
|
||||||
|
gobuild := new(build.GoToolchain).Go("build", buildFlags(env, *staticlink, buildTags)...)
|
||||||
|
|
||||||
|
// We use -trimpath to avoid leaking local paths into the built executables.
|
||||||
|
gobuild.Args = append(gobuild.Args, "-trimpath")
|
||||||
|
|
||||||
|
// Show packages during build.
|
||||||
|
gobuild.Args = append(gobuild.Args, "-v")
|
||||||
|
|
||||||
|
// Now we choose what we're even building.
|
||||||
|
blob, err := os.ReadFile(*depsfile)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Failed to read go.dep file: %v", err)
|
||||||
|
}
|
||||||
|
deps := bufio.NewReader(bytes.NewReader(blob))
|
||||||
|
|
||||||
|
var packages []string
|
||||||
|
for {
|
||||||
|
pkg, _, err := deps.ReadLine()
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
packages = append(packages, string(pkg))
|
||||||
|
}
|
||||||
|
args := make([]string, len(gobuild.Args))
|
||||||
|
copy(args, gobuild.Args)
|
||||||
|
args = append(args, packages...)
|
||||||
|
build.MustRun(&exec.Cmd{Path: gobuild.Path, Args: args, Env: gobuild.Env})
|
||||||
|
}
|
||||||
|
|
||||||
func doInstall(cmdline []string) {
|
func doInstall(cmdline []string) {
|
||||||
var (
|
var (
|
||||||
dlgo = flag.Bool("dlgo", false, "Download Go and build with it")
|
dlgo = flag.Bool("dlgo", false, "Download Go and build with it")
|
||||||
|
|
@ -201,7 +249,6 @@ func doInstall(cmdline []string) {
|
||||||
if env.UbuntuVersion != "trusty" {
|
if env.UbuntuVersion != "trusty" {
|
||||||
buildTags = append(buildTags, "ckzg")
|
buildTags = append(buildTags, "ckzg")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure the build.
|
// Configure the build.
|
||||||
gobuild := tc.Go("build", buildFlags(env, *staticlink, buildTags)...)
|
gobuild := tc.Go("build", buildFlags(env, *staticlink, buildTags)...)
|
||||||
|
|
||||||
|
|
@ -352,8 +399,8 @@ func downloadSpecTestFixtures(csdb *build.ChecksumDB, cachedir string) string {
|
||||||
// hashAllSourceFiles iterates all files under the top-level project directory
|
// hashAllSourceFiles iterates all files under the top-level project directory
|
||||||
// computing the hash of each file (excluding files within the tests
|
// computing the hash of each file (excluding files within the tests
|
||||||
// subrepo)
|
// subrepo)
|
||||||
func hashAllSourceFiles() (map[string]common.Hash, error) {
|
func hashAllSourceFiles() (map[string][32]byte, error) {
|
||||||
res := make(map[string]common.Hash)
|
res := make(map[string][32]byte)
|
||||||
err := filepath.WalkDir(".", func(path string, d os.DirEntry, err error) error {
|
err := filepath.WalkDir(".", func(path string, d os.DirEntry, err error) error {
|
||||||
if strings.HasPrefix(path, filepath.FromSlash("tests/testdata")) {
|
if strings.HasPrefix(path, filepath.FromSlash("tests/testdata")) {
|
||||||
return filepath.SkipDir
|
return filepath.SkipDir
|
||||||
|
|
@ -370,7 +417,7 @@ func hashAllSourceFiles() (map[string]common.Hash, error) {
|
||||||
if _, err := io.Copy(hasher, f); err != nil {
|
if _, err := io.Copy(hasher, f); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
res[path] = common.Hash(hasher.Sum(nil))
|
res[path] = [32]byte(hasher.Sum(nil))
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -381,8 +428,8 @@ func hashAllSourceFiles() (map[string]common.Hash, error) {
|
||||||
|
|
||||||
// hashSourceFiles iterates the provided set of filepaths (relative to the top-level geth project directory)
|
// hashSourceFiles iterates the provided set of filepaths (relative to the top-level geth project directory)
|
||||||
// computing the hash of each file.
|
// computing the hash of each file.
|
||||||
func hashSourceFiles(files []string) (map[string]common.Hash, error) {
|
func hashSourceFiles(files []string) (map[string][32]byte, error) {
|
||||||
res := make(map[string]common.Hash)
|
res := make(map[string][32]byte)
|
||||||
for _, filePath := range files {
|
for _, filePath := range files {
|
||||||
f, err := os.OpenFile(filePath, os.O_RDONLY, 0666)
|
f, err := os.OpenFile(filePath, os.O_RDONLY, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -392,14 +439,14 @@ func hashSourceFiles(files []string) (map[string]common.Hash, error) {
|
||||||
if _, err := io.Copy(hasher, f); err != nil {
|
if _, err := io.Copy(hasher, f); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
res[filePath] = common.Hash(hasher.Sum(nil))
|
res[filePath] = [32]byte(hasher.Sum(nil))
|
||||||
}
|
}
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// compareHashedFilesets compares two maps (key is relative file path to top-level geth directory, value is its hash)
|
// compareHashedFilesets compares two maps (key is relative file path to top-level geth directory, value is its hash)
|
||||||
// and returns the list of file paths whose hashes differed.
|
// and returns the list of file paths whose hashes differed.
|
||||||
func compareHashedFilesets(preHashes map[string]common.Hash, postHashes map[string]common.Hash) []string {
|
func compareHashedFilesets(preHashes map[string][32]byte, postHashes map[string][32]byte) []string {
|
||||||
updates := []string{}
|
updates := []string{}
|
||||||
for path, postHash := range postHashes {
|
for path, postHash := range postHashes {
|
||||||
preHash, ok := preHashes[path]
|
preHash, ok := preHashes[path]
|
||||||
|
|
@ -442,7 +489,7 @@ func doGenerate() {
|
||||||
protocPath := downloadProtoc(*cachedir)
|
protocPath := downloadProtoc(*cachedir)
|
||||||
protocGenGoPath := downloadProtocGenGo(*cachedir)
|
protocGenGoPath := downloadProtocGenGo(*cachedir)
|
||||||
|
|
||||||
var preHashes map[string]common.Hash
|
var preHashes map[string][32]byte
|
||||||
if *verify {
|
if *verify {
|
||||||
var err error
|
var err error
|
||||||
preHashes, err = hashAllSourceFiles()
|
preHashes, err = hashAllSourceFiles()
|
||||||
|
|
@ -915,7 +962,7 @@ func ppaUpload(workdir, ppa, sshUser string, files []string) {
|
||||||
var idfile string
|
var idfile string
|
||||||
if sshkey := getenvBase64("PPA_SSH_KEY"); len(sshkey) > 0 {
|
if sshkey := getenvBase64("PPA_SSH_KEY"); len(sshkey) > 0 {
|
||||||
idfile = filepath.Join(workdir, "sshkey")
|
idfile = filepath.Join(workdir, "sshkey")
|
||||||
if !common.FileExist(idfile) {
|
if !build.FileExist(idfile) {
|
||||||
os.WriteFile(idfile, sshkey, 0600)
|
os.WriteFile(idfile, sshkey, 0600)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
497
build/docker.go.dep
Normal file
497
build/docker.go.dep
Normal file
|
|
@ -0,0 +1,497 @@
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/async
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/body
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/log
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/policy
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/to
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal/diag
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal/exported
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal/log
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal/poller
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal/temporal
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/internal/uuid
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/appendblob
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blockblob
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/base
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/exported
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/shared
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/pageblob
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas
|
||||||
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/service
|
||||||
|
github.com/DataDog/zstd
|
||||||
|
github.com/VictoriaMetrics/fastcache
|
||||||
|
github.com/aws/aws-sdk-go-v2
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/defaults
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/middleware
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/protocol/query
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/protocol/restjson
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/protocol/xml
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/ratelimit
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/retry
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/signer/v4
|
||||||
|
github.com/aws/aws-sdk-go-v2/aws/transport/http
|
||||||
|
github.com/aws/aws-sdk-go-v2/config
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials/endpointcreds
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials/processcreds
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials/ssocreds
|
||||||
|
github.com/aws/aws-sdk-go-v2/credentials/stscreds
|
||||||
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds
|
||||||
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/auth
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/configsources
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/ini
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/rand
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/sdk
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/sdkio
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/shareddefaults
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/strings
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/sync/singleflight
|
||||||
|
github.com/aws/aws-sdk-go-v2/internal/timeconv
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/route53
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/route53/internal/customizations
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/route53/internal/endpoints
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/route53/types
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sso
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sso/types
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/ssooidc
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/ssooidc/types
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sts
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints
|
||||||
|
github.com/aws/aws-sdk-go-v2/service/sts/types
|
||||||
|
github.com/aws/smithy-go
|
||||||
|
github.com/aws/smithy-go/auth/bearer
|
||||||
|
github.com/aws/smithy-go/context
|
||||||
|
github.com/aws/smithy-go/document
|
||||||
|
github.com/aws/smithy-go/encoding
|
||||||
|
github.com/aws/smithy-go/encoding/httpbinding
|
||||||
|
github.com/aws/smithy-go/encoding/json
|
||||||
|
github.com/aws/smithy-go/encoding/xml
|
||||||
|
github.com/aws/smithy-go/endpoints
|
||||||
|
github.com/aws/smithy-go/internal/sync/singleflight
|
||||||
|
github.com/aws/smithy-go/io
|
||||||
|
github.com/aws/smithy-go/logging
|
||||||
|
github.com/aws/smithy-go/middleware
|
||||||
|
github.com/aws/smithy-go/ptr
|
||||||
|
github.com/aws/smithy-go/rand
|
||||||
|
github.com/aws/smithy-go/time
|
||||||
|
github.com/aws/smithy-go/transport/http
|
||||||
|
github.com/aws/smithy-go/transport/http/internal/io
|
||||||
|
github.com/aws/smithy-go/waiter
|
||||||
|
github.com/beorn7/perks/quantile
|
||||||
|
github.com/bits-and-blooms/bitset
|
||||||
|
github.com/cespare/xxhash/v2
|
||||||
|
github.com/cloudflare/cloudflare-go
|
||||||
|
github.com/cockroachdb/errors
|
||||||
|
github.com/cockroachdb/errors/assert
|
||||||
|
github.com/cockroachdb/errors/barriers
|
||||||
|
github.com/cockroachdb/errors/contexttags
|
||||||
|
github.com/cockroachdb/errors/domains
|
||||||
|
github.com/cockroachdb/errors/errbase
|
||||||
|
github.com/cockroachdb/errors/errorspb
|
||||||
|
github.com/cockroachdb/errors/errutil
|
||||||
|
github.com/cockroachdb/errors/hintdetail
|
||||||
|
github.com/cockroachdb/errors/issuelink
|
||||||
|
github.com/cockroachdb/errors/join
|
||||||
|
github.com/cockroachdb/errors/markers
|
||||||
|
github.com/cockroachdb/errors/oserror
|
||||||
|
github.com/cockroachdb/errors/report
|
||||||
|
github.com/cockroachdb/errors/safedetails
|
||||||
|
github.com/cockroachdb/errors/secondary
|
||||||
|
github.com/cockroachdb/errors/stdstrings
|
||||||
|
github.com/cockroachdb/errors/telemetrykeys
|
||||||
|
github.com/cockroachdb/errors/withstack
|
||||||
|
github.com/cockroachdb/fifo
|
||||||
|
github.com/cockroachdb/logtags
|
||||||
|
github.com/cockroachdb/pebble
|
||||||
|
github.com/cockroachdb/pebble/bloom
|
||||||
|
github.com/cockroachdb/pebble/internal/arenaskl
|
||||||
|
github.com/cockroachdb/pebble/internal/base
|
||||||
|
github.com/cockroachdb/pebble/internal/batchskl
|
||||||
|
github.com/cockroachdb/pebble/internal/bytealloc
|
||||||
|
github.com/cockroachdb/pebble/internal/cache
|
||||||
|
github.com/cockroachdb/pebble/internal/constants
|
||||||
|
github.com/cockroachdb/pebble/internal/crc
|
||||||
|
github.com/cockroachdb/pebble/internal/fastrand
|
||||||
|
github.com/cockroachdb/pebble/internal/humanize
|
||||||
|
github.com/cockroachdb/pebble/internal/intern
|
||||||
|
github.com/cockroachdb/pebble/internal/invalidating
|
||||||
|
github.com/cockroachdb/pebble/internal/invariants
|
||||||
|
github.com/cockroachdb/pebble/internal/keyspan
|
||||||
|
github.com/cockroachdb/pebble/internal/manifest
|
||||||
|
github.com/cockroachdb/pebble/internal/manual
|
||||||
|
github.com/cockroachdb/pebble/internal/private
|
||||||
|
github.com/cockroachdb/pebble/internal/rangedel
|
||||||
|
github.com/cockroachdb/pebble/internal/rangekey
|
||||||
|
github.com/cockroachdb/pebble/internal/rawalloc
|
||||||
|
github.com/cockroachdb/pebble/internal/testkeys
|
||||||
|
github.com/cockroachdb/pebble/objstorage
|
||||||
|
github.com/cockroachdb/pebble/objstorage/objstorageprovider
|
||||||
|
github.com/cockroachdb/pebble/objstorage/objstorageprovider/objiotracing
|
||||||
|
github.com/cockroachdb/pebble/objstorage/objstorageprovider/remoteobjcat
|
||||||
|
github.com/cockroachdb/pebble/objstorage/objstorageprovider/sharedcache
|
||||||
|
github.com/cockroachdb/pebble/objstorage/remote
|
||||||
|
github.com/cockroachdb/pebble/rangekey
|
||||||
|
github.com/cockroachdb/pebble/record
|
||||||
|
github.com/cockroachdb/pebble/sstable
|
||||||
|
github.com/cockroachdb/pebble/vfs
|
||||||
|
github.com/cockroachdb/pebble/vfs/atomicfs
|
||||||
|
github.com/cockroachdb/redact
|
||||||
|
github.com/cockroachdb/redact/builder
|
||||||
|
github.com/cockroachdb/redact/interfaces
|
||||||
|
github.com/cockroachdb/redact/internal/buffer
|
||||||
|
github.com/cockroachdb/redact/internal/escape
|
||||||
|
github.com/cockroachdb/redact/internal/fmtforward
|
||||||
|
github.com/cockroachdb/redact/internal/markers
|
||||||
|
github.com/cockroachdb/redact/internal/redact
|
||||||
|
github.com/cockroachdb/redact/internal/rfmt
|
||||||
|
github.com/cockroachdb/redact/internal/rfmt/fmtsort
|
||||||
|
github.com/cockroachdb/tokenbucket
|
||||||
|
github.com/consensys/bavard
|
||||||
|
github.com/consensys/gnark-crypto/ecc
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bls12-381
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bls12-381/bandersnatch
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bls12-381/fp
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bls12-381/fr
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bls12-381/internal/fptower
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bn254
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bn254/fp
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bn254/fr
|
||||||
|
github.com/consensys/gnark-crypto/ecc/bn254/internal/fptower
|
||||||
|
github.com/consensys/gnark-crypto/field/generator/config
|
||||||
|
github.com/consensys/gnark-crypto/field/generator/internal/addchain
|
||||||
|
github.com/consensys/gnark-crypto/field/hash
|
||||||
|
github.com/consensys/gnark-crypto/field/pool
|
||||||
|
github.com/consensys/gnark-crypto/internal/generator/config
|
||||||
|
github.com/consensys/gnark-crypto/internal/parallel
|
||||||
|
github.com/cpuguy83/go-md2man/v2/md2man
|
||||||
|
github.com/crate-crypto/go-ipa
|
||||||
|
github.com/crate-crypto/go-ipa/bandersnatch
|
||||||
|
github.com/crate-crypto/go-ipa/bandersnatch/fp
|
||||||
|
github.com/crate-crypto/go-ipa/bandersnatch/fr
|
||||||
|
github.com/crate-crypto/go-ipa/banderwagon
|
||||||
|
github.com/crate-crypto/go-ipa/common
|
||||||
|
github.com/crate-crypto/go-ipa/common/parallel
|
||||||
|
github.com/crate-crypto/go-ipa/ipa
|
||||||
|
github.com/crate-crypto/go-kzg-4844
|
||||||
|
github.com/crate-crypto/go-kzg-4844/internal/kzg
|
||||||
|
github.com/crate-crypto/go-kzg-4844/internal/multiexp
|
||||||
|
github.com/crate-crypto/go-kzg-4844/internal/utils
|
||||||
|
github.com/davecgh/go-spew/spew
|
||||||
|
github.com/deckarep/golang-set/v2
|
||||||
|
github.com/deepmap/oapi-codegen/pkg/runtime
|
||||||
|
github.com/deepmap/oapi-codegen/pkg/types
|
||||||
|
github.com/dlclark/regexp2
|
||||||
|
github.com/dlclark/regexp2/syntax
|
||||||
|
github.com/donovanhide/eventsource
|
||||||
|
github.com/dop251/goja
|
||||||
|
github.com/dop251/goja/ast
|
||||||
|
github.com/dop251/goja/file
|
||||||
|
github.com/dop251/goja/ftoa
|
||||||
|
github.com/dop251/goja/ftoa/internal/fast
|
||||||
|
github.com/dop251/goja/parser
|
||||||
|
github.com/dop251/goja/token
|
||||||
|
github.com/dop251/goja/unistring
|
||||||
|
github.com/ethereum/go-verkle
|
||||||
|
github.com/fatih/color
|
||||||
|
github.com/ferranbt/fastssz
|
||||||
|
github.com/fsnotify/fsnotify
|
||||||
|
github.com/gballet/go-libpcsclite
|
||||||
|
github.com/getsentry/sentry-go
|
||||||
|
github.com/getsentry/sentry-go/internal/debug
|
||||||
|
github.com/getsentry/sentry-go/internal/otel/baggage
|
||||||
|
github.com/getsentry/sentry-go/internal/otel/baggage/internal/baggage
|
||||||
|
github.com/getsentry/sentry-go/internal/ratelimit
|
||||||
|
github.com/getsentry/sentry-go/internal/traceparser
|
||||||
|
github.com/go-sourcemap/sourcemap
|
||||||
|
github.com/go-sourcemap/sourcemap/internal/base64vlq
|
||||||
|
github.com/goccy/go-json
|
||||||
|
github.com/goccy/go-json/internal/decoder
|
||||||
|
github.com/goccy/go-json/internal/encoder
|
||||||
|
github.com/goccy/go-json/internal/encoder/vm
|
||||||
|
github.com/goccy/go-json/internal/encoder/vm_color
|
||||||
|
github.com/goccy/go-json/internal/encoder/vm_color_indent
|
||||||
|
github.com/goccy/go-json/internal/encoder/vm_indent
|
||||||
|
github.com/goccy/go-json/internal/errors
|
||||||
|
github.com/goccy/go-json/internal/runtime
|
||||||
|
github.com/gofrs/flock
|
||||||
|
github.com/gogo/protobuf/gogoproto
|
||||||
|
github.com/gogo/protobuf/proto
|
||||||
|
github.com/gogo/protobuf/protoc-gen-gogo/descriptor
|
||||||
|
github.com/gogo/protobuf/sortkeys
|
||||||
|
github.com/gogo/protobuf/types
|
||||||
|
github.com/golang-jwt/jwt/v4
|
||||||
|
github.com/golang/protobuf/proto
|
||||||
|
github.com/golang/protobuf/ptypes
|
||||||
|
github.com/golang/protobuf/ptypes/any
|
||||||
|
github.com/golang/protobuf/ptypes/duration
|
||||||
|
github.com/golang/protobuf/ptypes/timestamp
|
||||||
|
github.com/golang/snappy
|
||||||
|
github.com/google/go-querystring/query
|
||||||
|
github.com/google/pprof/profile
|
||||||
|
github.com/google/uuid
|
||||||
|
github.com/gorilla/websocket
|
||||||
|
github.com/graph-gophers/graphql-go
|
||||||
|
github.com/graph-gophers/graphql-go/decode
|
||||||
|
github.com/graph-gophers/graphql-go/errors
|
||||||
|
github.com/graph-gophers/graphql-go/internal/common
|
||||||
|
github.com/graph-gophers/graphql-go/internal/exec
|
||||||
|
github.com/graph-gophers/graphql-go/internal/exec/packer
|
||||||
|
github.com/graph-gophers/graphql-go/internal/exec/resolvable
|
||||||
|
github.com/graph-gophers/graphql-go/internal/exec/selected
|
||||||
|
github.com/graph-gophers/graphql-go/internal/query
|
||||||
|
github.com/graph-gophers/graphql-go/internal/schema
|
||||||
|
github.com/graph-gophers/graphql-go/internal/validation
|
||||||
|
github.com/graph-gophers/graphql-go/introspection
|
||||||
|
github.com/graph-gophers/graphql-go/log
|
||||||
|
github.com/graph-gophers/graphql-go/trace
|
||||||
|
github.com/graph-gophers/graphql-go/types
|
||||||
|
github.com/hashicorp/go-bexpr
|
||||||
|
github.com/hashicorp/go-bexpr/grammar
|
||||||
|
github.com/hashicorp/go-cleanhttp
|
||||||
|
github.com/hashicorp/go-retryablehttp
|
||||||
|
github.com/holiman/billy
|
||||||
|
github.com/holiman/bloomfilter/v2
|
||||||
|
github.com/holiman/uint256
|
||||||
|
github.com/huin/goupnp
|
||||||
|
github.com/huin/goupnp/dcps/internetgateway1
|
||||||
|
github.com/huin/goupnp/dcps/internetgateway2
|
||||||
|
github.com/huin/goupnp/httpu
|
||||||
|
github.com/huin/goupnp/scpd
|
||||||
|
github.com/huin/goupnp/soap
|
||||||
|
github.com/huin/goupnp/ssdp
|
||||||
|
github.com/influxdata/influxdb-client-go/v2
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/api
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/api/http
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/api/query
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/api/write
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/domain
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/internal/gzip
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/internal/http
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/internal/log
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/internal/write
|
||||||
|
github.com/influxdata/influxdb-client-go/v2/log
|
||||||
|
github.com/influxdata/influxdb1-client/models
|
||||||
|
github.com/influxdata/influxdb1-client/pkg/escape
|
||||||
|
github.com/influxdata/influxdb1-client/v2
|
||||||
|
github.com/influxdata/line-protocol
|
||||||
|
github.com/jackpal/go-nat-pmp
|
||||||
|
github.com/jedisct1/go-minisign
|
||||||
|
github.com/jmespath/go-jmespath
|
||||||
|
github.com/karalabe/hid
|
||||||
|
github.com/kilic/bls12-381
|
||||||
|
github.com/klauspost/cpuid/v2
|
||||||
|
github.com/kr/pretty
|
||||||
|
github.com/kr/text
|
||||||
|
github.com/mattn/go-colorable
|
||||||
|
github.com/mattn/go-isatty
|
||||||
|
github.com/mattn/go-runewidth
|
||||||
|
github.com/matttproud/golang_protobuf_extensions/pbutil
|
||||||
|
github.com/minio/sha256-simd
|
||||||
|
github.com/mitchellh/mapstructure
|
||||||
|
github.com/mitchellh/pointerstructure
|
||||||
|
github.com/mmcloughlin/addchain
|
||||||
|
github.com/mmcloughlin/addchain/acc
|
||||||
|
github.com/mmcloughlin/addchain/acc/ast
|
||||||
|
github.com/mmcloughlin/addchain/acc/ir
|
||||||
|
github.com/mmcloughlin/addchain/acc/parse
|
||||||
|
github.com/mmcloughlin/addchain/acc/parse/internal/parser
|
||||||
|
github.com/mmcloughlin/addchain/acc/pass
|
||||||
|
github.com/mmcloughlin/addchain/acc/printer
|
||||||
|
github.com/mmcloughlin/addchain/alg
|
||||||
|
github.com/mmcloughlin/addchain/alg/contfrac
|
||||||
|
github.com/mmcloughlin/addchain/alg/dict
|
||||||
|
github.com/mmcloughlin/addchain/alg/ensemble
|
||||||
|
github.com/mmcloughlin/addchain/alg/exec
|
||||||
|
github.com/mmcloughlin/addchain/alg/heuristic
|
||||||
|
github.com/mmcloughlin/addchain/alg/opt
|
||||||
|
github.com/mmcloughlin/addchain/internal/bigint
|
||||||
|
github.com/mmcloughlin/addchain/internal/bigints
|
||||||
|
github.com/mmcloughlin/addchain/internal/bigvector
|
||||||
|
github.com/mmcloughlin/addchain/internal/container/heap
|
||||||
|
github.com/mmcloughlin/addchain/internal/errutil
|
||||||
|
github.com/mmcloughlin/addchain/internal/print
|
||||||
|
github.com/mmcloughlin/addchain/meta
|
||||||
|
github.com/naoina/go-stringutil
|
||||||
|
github.com/naoina/toml
|
||||||
|
github.com/naoina/toml/ast
|
||||||
|
github.com/olekukonko/tablewriter
|
||||||
|
github.com/opentracing/opentracing-go
|
||||||
|
github.com/opentracing/opentracing-go/ext
|
||||||
|
github.com/opentracing/opentracing-go/log
|
||||||
|
github.com/peterh/liner
|
||||||
|
github.com/pkg/errors
|
||||||
|
github.com/prometheus/client_golang/prometheus
|
||||||
|
github.com/prometheus/client_golang/prometheus/internal
|
||||||
|
github.com/prometheus/client_model/go
|
||||||
|
github.com/prometheus/common/expfmt
|
||||||
|
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
|
||||||
|
github.com/prometheus/common/model
|
||||||
|
github.com/prometheus/procfs
|
||||||
|
github.com/prometheus/procfs/internal/fs
|
||||||
|
github.com/prometheus/procfs/internal/util
|
||||||
|
github.com/protolambda/bls12-381-util
|
||||||
|
github.com/protolambda/zrnt/eth2/beacon/altair
|
||||||
|
github.com/protolambda/zrnt/eth2/beacon/bellatrix
|
||||||
|
github.com/protolambda/zrnt/eth2/beacon/capella
|
||||||
|
github.com/protolambda/zrnt/eth2/beacon/common
|
||||||
|
github.com/protolambda/zrnt/eth2/beacon/deneb
|
||||||
|
github.com/protolambda/zrnt/eth2/beacon/phase0
|
||||||
|
github.com/protolambda/zrnt/eth2/configs
|
||||||
|
github.com/protolambda/zrnt/eth2/util/hashing
|
||||||
|
github.com/protolambda/zrnt/eth2/util/math
|
||||||
|
github.com/protolambda/zrnt/eth2/util/merkle
|
||||||
|
github.com/protolambda/ztyp/bitfields
|
||||||
|
github.com/protolambda/ztyp/codec
|
||||||
|
github.com/protolambda/ztyp/conv
|
||||||
|
github.com/protolambda/ztyp/tree
|
||||||
|
github.com/protolambda/ztyp/view
|
||||||
|
github.com/rivo/uniseg
|
||||||
|
github.com/rogpeppe/go-internal/fmtsort
|
||||||
|
github.com/rs/cors
|
||||||
|
github.com/russross/blackfriday/v2
|
||||||
|
github.com/shirou/gopsutil/cpu
|
||||||
|
github.com/shirou/gopsutil/internal/common
|
||||||
|
github.com/shirou/gopsutil/mem
|
||||||
|
github.com/status-im/keycard-go/derivationpath
|
||||||
|
github.com/supranational/blst/bindings/go
|
||||||
|
github.com/syndtr/goleveldb/leveldb
|
||||||
|
github.com/syndtr/goleveldb/leveldb/cache
|
||||||
|
github.com/syndtr/goleveldb/leveldb/comparer
|
||||||
|
github.com/syndtr/goleveldb/leveldb/errors
|
||||||
|
github.com/syndtr/goleveldb/leveldb/filter
|
||||||
|
github.com/syndtr/goleveldb/leveldb/iterator
|
||||||
|
github.com/syndtr/goleveldb/leveldb/journal
|
||||||
|
github.com/syndtr/goleveldb/leveldb/memdb
|
||||||
|
github.com/syndtr/goleveldb/leveldb/opt
|
||||||
|
github.com/syndtr/goleveldb/leveldb/storage
|
||||||
|
github.com/syndtr/goleveldb/leveldb/table
|
||||||
|
github.com/syndtr/goleveldb/leveldb/util
|
||||||
|
github.com/tklauser/go-sysconf
|
||||||
|
github.com/tyler-smith/go-bip39
|
||||||
|
github.com/tyler-smith/go-bip39/wordlists
|
||||||
|
github.com/urfave/cli/v2
|
||||||
|
github.com/xrash/smetrics
|
||||||
|
go.uber.org/automaxprocs/internal/runtime
|
||||||
|
go.uber.org/automaxprocs/maxprocs
|
||||||
|
golang.org/x/crypto/blake2b
|
||||||
|
golang.org/x/crypto/cast5
|
||||||
|
golang.org/x/crypto/ed25519
|
||||||
|
golang.org/x/crypto/hkdf
|
||||||
|
golang.org/x/crypto/openpgp
|
||||||
|
golang.org/x/crypto/openpgp/armor
|
||||||
|
golang.org/x/crypto/openpgp/elgamal
|
||||||
|
golang.org/x/crypto/openpgp/errors
|
||||||
|
golang.org/x/crypto/openpgp/packet
|
||||||
|
golang.org/x/crypto/openpgp/s2k
|
||||||
|
golang.org/x/crypto/pbkdf2
|
||||||
|
golang.org/x/crypto/ripemd160
|
||||||
|
golang.org/x/crypto/scrypt
|
||||||
|
golang.org/x/crypto/sha3
|
||||||
|
golang.org/x/exp/constraints
|
||||||
|
golang.org/x/exp/maps
|
||||||
|
golang.org/x/exp/rand
|
||||||
|
golang.org/x/mod/semver
|
||||||
|
golang.org/x/net/http/httpguts
|
||||||
|
golang.org/x/net/idna
|
||||||
|
golang.org/x/net/publicsuffix
|
||||||
|
golang.org/x/sync/errgroup
|
||||||
|
golang.org/x/sync/singleflight
|
||||||
|
golang.org/x/sys/cpu
|
||||||
|
golang.org/x/sys/execabs
|
||||||
|
golang.org/x/sys/unix
|
||||||
|
golang.org/x/text/cases
|
||||||
|
golang.org/x/text/collate
|
||||||
|
golang.org/x/text/internal
|
||||||
|
golang.org/x/text/internal/colltab
|
||||||
|
golang.org/x/text/internal/language
|
||||||
|
golang.org/x/text/internal/language/compact
|
||||||
|
golang.org/x/text/internal/tag
|
||||||
|
golang.org/x/text/language
|
||||||
|
golang.org/x/text/secure/bidirule
|
||||||
|
golang.org/x/text/transform
|
||||||
|
golang.org/x/text/unicode/bidi
|
||||||
|
golang.org/x/text/unicode/norm
|
||||||
|
golang.org/x/text/unicode/rangetable
|
||||||
|
golang.org/x/time/rate
|
||||||
|
golang.org/x/tools/go/gcexportdata
|
||||||
|
golang.org/x/tools/go/internal/packagesdriver
|
||||||
|
golang.org/x/tools/go/packages
|
||||||
|
golang.org/x/tools/go/types/objectpath
|
||||||
|
golang.org/x/tools/internal/aliases
|
||||||
|
golang.org/x/tools/internal/event
|
||||||
|
golang.org/x/tools/internal/event/core
|
||||||
|
golang.org/x/tools/internal/event/keys
|
||||||
|
golang.org/x/tools/internal/event/label
|
||||||
|
golang.org/x/tools/internal/event/tag
|
||||||
|
golang.org/x/tools/internal/gcimporter
|
||||||
|
golang.org/x/tools/internal/gocommand
|
||||||
|
golang.org/x/tools/internal/packagesinternal
|
||||||
|
golang.org/x/tools/internal/pkgbits
|
||||||
|
golang.org/x/tools/internal/stdlib
|
||||||
|
golang.org/x/tools/internal/tokeninternal
|
||||||
|
golang.org/x/tools/internal/typesinternal
|
||||||
|
golang.org/x/tools/internal/versions
|
||||||
|
google.golang.org/protobuf/encoding/prototext
|
||||||
|
google.golang.org/protobuf/encoding/protowire
|
||||||
|
google.golang.org/protobuf/internal/descfmt
|
||||||
|
google.golang.org/protobuf/internal/descopts
|
||||||
|
google.golang.org/protobuf/internal/detrand
|
||||||
|
google.golang.org/protobuf/internal/editiondefaults
|
||||||
|
google.golang.org/protobuf/internal/editionssupport
|
||||||
|
google.golang.org/protobuf/internal/encoding/defval
|
||||||
|
google.golang.org/protobuf/internal/encoding/messageset
|
||||||
|
google.golang.org/protobuf/internal/encoding/tag
|
||||||
|
google.golang.org/protobuf/internal/encoding/text
|
||||||
|
google.golang.org/protobuf/internal/errors
|
||||||
|
google.golang.org/protobuf/internal/filedesc
|
||||||
|
google.golang.org/protobuf/internal/filetype
|
||||||
|
google.golang.org/protobuf/internal/flags
|
||||||
|
google.golang.org/protobuf/internal/genid
|
||||||
|
google.golang.org/protobuf/internal/impl
|
||||||
|
google.golang.org/protobuf/internal/order
|
||||||
|
google.golang.org/protobuf/internal/pragma
|
||||||
|
google.golang.org/protobuf/internal/set
|
||||||
|
google.golang.org/protobuf/internal/strs
|
||||||
|
google.golang.org/protobuf/internal/version
|
||||||
|
google.golang.org/protobuf/proto
|
||||||
|
google.golang.org/protobuf/reflect/protodesc
|
||||||
|
google.golang.org/protobuf/reflect/protoreflect
|
||||||
|
google.golang.org/protobuf/reflect/protoregistry
|
||||||
|
google.golang.org/protobuf/runtime/protoiface
|
||||||
|
google.golang.org/protobuf/runtime/protoimpl
|
||||||
|
google.golang.org/protobuf/types/descriptorpb
|
||||||
|
google.golang.org/protobuf/types/gofeaturespb
|
||||||
|
google.golang.org/protobuf/types/known/anypb
|
||||||
|
google.golang.org/protobuf/types/known/durationpb
|
||||||
|
google.golang.org/protobuf/types/known/timestamppb
|
||||||
|
gopkg.in/natefinch/lumberjack.v2
|
||||||
|
gopkg.in/yaml.v2
|
||||||
|
gopkg.in/yaml.v3
|
||||||
|
rsc.io/tmplfunc
|
||||||
|
rsc.io/tmplfunc/internal/parse
|
||||||
|
|
@ -27,7 +27,6 @@ func FileExist(filePath string) bool {
|
||||||
if err != nil && os.IsNotExist(err) {
|
if err != nil && os.IsNotExist(err) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,15 @@ import (
|
||||||
|
|
||||||
var DryRunFlag = flag.Bool("n", false, "dry run, don't execute commands")
|
var DryRunFlag = flag.Bool("n", false, "dry run, don't execute commands")
|
||||||
|
|
||||||
|
// FileExist checks if a file exists at filePath.
|
||||||
|
func FileExist(filePath string) bool {
|
||||||
|
_, err := os.Stat(filePath)
|
||||||
|
if err != nil && os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
// MustRun executes the given command and exits the host process for
|
// MustRun executes the given command and exits the host process for
|
||||||
// any error.
|
// any error.
|
||||||
func MustRun(cmd *exec.Cmd) {
|
func MustRun(cmd *exec.Cmd) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue