aboutsummaryrefslogblamecommitdiffstats
path: root/cmd/devp2p/main.go
blob: 4532ab96837202c5fce85e2e5f1d3d484a1a9ef0 (plain) (tree)



































































                                                                          
// Copyright 2019 The go-ethereum Authors
// This file is part of go-ethereum.
//
// go-ethereum is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// go-ethereum is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>.

package main

import (
    "fmt"
    "os"
    "path/filepath"

    "github.com/ethereum/go-ethereum/internal/debug"
    "github.com/ethereum/go-ethereum/params"
    "gopkg.in/urfave/cli.v1"
)

var (
    // Git information set by linker when building with ci.go.
    gitCommit string
    gitDate   string
    app       = &cli.App{
        Name:        filepath.Base(os.Args[0]),
        Usage:       "go-ethereum devp2p tool",
        Version:     params.VersionWithCommit(gitCommit, gitDate),
        Writer:      os.Stdout,
        HideVersion: true,
    }
)

func init() {
    // Set up the CLI app.
    app.Flags = append(app.Flags, debug.Flags...)
    app.Before = func(ctx *cli.Context) error {
        return debug.Setup(ctx, "")
    }
    app.After = func(ctx *cli.Context) error {
        debug.Exit()
        return nil
    }
    app.CommandNotFound = func(ctx *cli.Context, cmd string) {
        fmt.Fprintf(os.Stderr, "No such command: %s\n", cmd)
        os.Exit(1)
    }
    // Add subcommands.
    app.Commands = []cli.Command{
        enrdumpCommand,
        discv4Command,
    }
}

func main() {
    if err := app.Run(os.Args); err != nil {
        fmt.Fprintln(os.Stderr, err)
        os.Exit(1)
    }
}