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/
|
||||
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
|
||||
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/
|
||||
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
|
||||
|
||||
# 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 "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: Makefile
|
||||
@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:
|
||||
|
||||
prebuild -- pre-builds all dependencies for caching
|
||||
install [ -arch architecture ] [ -cc compiler ] [ packages... ] -- builds packages and executables
|
||||
test [ -coverage ] [ packages... ] -- runs the tests
|
||||
lint -- runs certain pre-selected linters
|
||||
|
|
@ -38,6 +39,7 @@ For all commands, -n prevents execution of external programs (dry run mode).
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"crypto/sha256"
|
||||
"encoding/base64"
|
||||
|
|
@ -54,7 +56,6 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/cespare/cp"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/crypto/signify"
|
||||
"github.com/ethereum/go-ethereum/internal/build"
|
||||
"github.com/ethereum/go-ethereum/params"
|
||||
|
|
@ -144,13 +145,15 @@ func executablePath(name string) string {
|
|||
func main() {
|
||||
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")
|
||||
}
|
||||
if len(os.Args) < 2 {
|
||||
log.Fatal("need subcommand as first argument")
|
||||
}
|
||||
switch os.Args[1] {
|
||||
case "prebuild":
|
||||
doPreBuild(os.Args[2:])
|
||||
case "install":
|
||||
doInstall(os.Args[2:])
|
||||
case "test":
|
||||
|
|
@ -178,6 +181,51 @@ func main() {
|
|||
|
||||
// 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) {
|
||||
var (
|
||||
dlgo = flag.Bool("dlgo", false, "Download Go and build with it")
|
||||
|
|
@ -201,7 +249,6 @@ func doInstall(cmdline []string) {
|
|||
if env.UbuntuVersion != "trusty" {
|
||||
buildTags = append(buildTags, "ckzg")
|
||||
}
|
||||
|
||||
// Configure the build.
|
||||
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
|
||||
// computing the hash of each file (excluding files within the tests
|
||||
// subrepo)
|
||||
func hashAllSourceFiles() (map[string]common.Hash, error) {
|
||||
res := make(map[string]common.Hash)
|
||||
func hashAllSourceFiles() (map[string][32]byte, error) {
|
||||
res := make(map[string][32]byte)
|
||||
err := filepath.WalkDir(".", func(path string, d os.DirEntry, err error) error {
|
||||
if strings.HasPrefix(path, filepath.FromSlash("tests/testdata")) {
|
||||
return filepath.SkipDir
|
||||
|
|
@ -370,7 +417,7 @@ func hashAllSourceFiles() (map[string]common.Hash, error) {
|
|||
if _, err := io.Copy(hasher, f); err != nil {
|
||||
return err
|
||||
}
|
||||
res[path] = common.Hash(hasher.Sum(nil))
|
||||
res[path] = [32]byte(hasher.Sum(nil))
|
||||
return 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)
|
||||
// computing the hash of each file.
|
||||
func hashSourceFiles(files []string) (map[string]common.Hash, error) {
|
||||
res := make(map[string]common.Hash)
|
||||
func hashSourceFiles(files []string) (map[string][32]byte, error) {
|
||||
res := make(map[string][32]byte)
|
||||
for _, filePath := range files {
|
||||
f, err := os.OpenFile(filePath, os.O_RDONLY, 0666)
|
||||
if err != nil {
|
||||
|
|
@ -392,14 +439,14 @@ func hashSourceFiles(files []string) (map[string]common.Hash, error) {
|
|||
if _, err := io.Copy(hasher, f); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res[filePath] = common.Hash(hasher.Sum(nil))
|
||||
res[filePath] = [32]byte(hasher.Sum(nil))
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// 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.
|
||||
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{}
|
||||
for path, postHash := range postHashes {
|
||||
preHash, ok := preHashes[path]
|
||||
|
|
@ -442,7 +489,7 @@ func doGenerate() {
|
|||
protocPath := downloadProtoc(*cachedir)
|
||||
protocGenGoPath := downloadProtocGenGo(*cachedir)
|
||||
|
||||
var preHashes map[string]common.Hash
|
||||
var preHashes map[string][32]byte
|
||||
if *verify {
|
||||
var err error
|
||||
preHashes, err = hashAllSourceFiles()
|
||||
|
|
@ -915,7 +962,7 @@ func ppaUpload(workdir, ppa, sshUser string, files []string) {
|
|||
var idfile string
|
||||
if sshkey := getenvBase64("PPA_SSH_KEY"); len(sshkey) > 0 {
|
||||
idfile = filepath.Join(workdir, "sshkey")
|
||||
if !common.FileExist(idfile) {
|
||||
if !build.FileExist(idfile) {
|
||||
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) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,15 @@ import (
|
|||
|
||||
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
|
||||
// any error.
|
||||
func MustRun(cmd *exec.Cmd) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue